找回密码
 加入
搜索
查看: 6042|回复: 4

[系统综合] [已解决]谁帮我看看这个DLL调用哪里错了

[复制链接]
发表于 2013-7-6 17:48:32 | 显示全部楼层 |阅读模式
本帖最后由 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[0])
这样写到$aaa1那就没反应然后提示完成了(下面2句都不显示)。没返回什么东西,

下面是他的函数,现在看他那句柄的窗口和窗口位置那好像怪怪的,是不是我参数错了

D2WndHandle

/**
 功能:    调用此函数之前,无需再调用初始化、登录等函数
 函数名:   D2WndHandle
 返回值:   >0 成功,返回验证码ID(用于调用ReportResult), <0失败
        应该停机处理的错误码包括:-1~-199(参数错误、用户错误)、-208(软件禁用)、-210(非法用户)、-301(配置错误、DLL找不到)
 参数:    [in]pszSoftwareID - 软件KEY
        [in]pszUserName - 用户名(注意是用户账号,而不是开发者账号)
        [in]pszUserPassword - 用户密码
        [in]hHandle - 窗口句柄
        [in]lpRect - 窗口位置,以空格分隔的4个数字,分别表示左上右下坐标(相对于窗口左上角)
        [in]usTimeout - 验证码超时时间,即过多久验证码将失效。单位秒。推荐60,如果验证码识别成功,函数立即返回,否则函数会阻塞一直到超时时间返回
        [in]ulVCodeTypeID - 验证码类型ID
        [out]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);
-----------------------------------------------------
发表于 2013-7-6 18:04:10 | 显示全部楼层
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] > 0 Then
        ; OK, succeeds.
        MsgBox(0, "ok", $iResult[8])
Else
        MsgBox(48, "error", $iResult[0])
EndIf
如果提示错误的话,将str改为wstr试下。第4个参数hHandle应该设为一个窗口的句柄,这个句柄可以返回自WinGetHandle、WinWait等函数。另外,第5个参数lpRect用来指定窗口位置,这个参数竟是以空格分隔的字符串,太不合理了。
 楼主| 发表于 2013-7-6 18:43:15 | 显示全部楼层
OK了,谢谢P大。。
发表于 2013-7-6 23:21:28 | 显示全部楼层
回复 1# 3370225
打码兔插件?
http://wiki.dama2.com/index.php?n=ApiDoc.AllFunc
 楼主| 发表于 2013-7-7 22:27:52 | 显示全部楼层
回复 4# 楼上风云


  是的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 16:03 , Processed in 0.108673 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表