[已解决]谁帮我看看这个DLL调用哪里错了
本帖最后由 3370225 于 2013-7-6 18:44 编辑假设软件编号为123 账号为A1,密码A2
句柄为0x001003D4,类型ID为44
$a=DllOpen("D:\CrackCaptchaAPI.dll")
$aaa1=DllCall ($a,"int","D2WndHandle","str","123","str","A1","str","A2","str","0x001003D4","str","63 50 222 114","int",60,"int",44)
MsgBox("","",@error)
MsgBox("","",$aaa1)
这样写到$aaa1那就没反应然后提示完成了(下面2句都不显示)。没返回什么东西,
下面是他的函数,现在看他那句柄的窗口和窗口位置那好像怪怪的,是不是我参数错了
D2WndHandle
/**
功能: 调用此函数之前,无需再调用初始化、登录等函数
函数名: D2WndHandle
返回值: >0 成功,返回验证码ID(用于调用ReportResult), <0失败
应该停机处理的错误码包括:-1~-199(参数错误、用户错误)、-208(软件禁用)、-210(非法用户)、-301(配置错误、DLL找不到)
参数: pszSoftwareID - 软件KEY
pszUserName - 用户名(注意是用户账号,而不是开发者账号)
pszUserPassword - 用户密码
hHandle - 窗口句柄
lpRect - 窗口位置,以空格分隔的4个数字,分别表示左上右下坐标(相对于窗口左上角)
usTimeout - 验证码超时时间,即过多久验证码将失效。单位秒。推荐60,如果验证码识别成功,函数立即返回,否则函数会阻塞一直到超时时间返回
ulVCodeTypeID - 验证码类型ID
pszVCodeText - 返回验证码结果字符,建议传入30字节缓冲区
*/
------------------------------------------------------------------------------------------------------------------------------------------
函数原型:int CRACKCAPTCHA_API D2WndHandle(
const char *pszSoftwareId,
const char *pszUserName,
const char *pszUserPassword,
HWND hHandle, LPCRECT lpRect,
unsigned short usTimeout,
unsigned long ulVCodeTypeID,
char *pszVCodeText);
----------------------------------------------------- Const $hDll = DllOpen("D:\CrackCaptchaAPI.dll")
Local $iResult = DllCall( _
$hDll, _
"int", "D2WndHandle", _
"str", "123", _ ; pszSoftwareId
"str", "A1", _ ; pszUserName
"str", "A2", _ ; pszUserPassword
"hwnd", HWnd(0x001003D4), _ ; hHandle
"str", "63 50 222 114", _ ; lpRect
"long", 60, _ ; usTimeout
"long", 44, _ ; ulVCodeTypeID
"str", "" _ ; pszVCodeText
)
If $iResult > 0 Then
; OK, succeeds.
MsgBox(0, "ok", $iResult)
Else
MsgBox(48, "error", $iResult)
EndIf如果提示错误的话,将str改为wstr试下。第4个参数hHandle应该设为一个窗口的句柄,这个句柄可以返回自WinGetHandle、WinWait等函数。另外,第5个参数lpRect用来指定窗口位置,这个参数竟是以空格分隔的字符串,太不合理了。 OK了,谢谢P大。。 回复 1# 3370225
打码兔插件?
http://wiki.dama2.com/index.php?n=ApiDoc.AllFunc 回复 4# 楼上风云
是的
页:
[1]