kxing 发表于 2016-1-6 16:18:15

求教一个关于调用dll的api问题

函数说明:
/**
 功能:    请求打码
 函数名:   Decode
 返回值:   0 成功, 其它失败,详见错误码定义 http://wiki.dama2.com/index.php?n=ApiDoc.ErrDef
 参数:    pszFileURL - 验证码图片URL,最长511
        pszCookie - 获取验证码所需Cookie,最长4095字节
        pszReferer - 获取验证码所需Referer,最长511字节
        ucVerificationCodeLen - 验证码长度,传入正确的验证码长度,将优先被识别。如果长度不定,可传0
        usTimeout - 验证码超时时间,即过多久验证码将失效。单位秒。推荐120
        ulVCodeTypeID - 验证码类型ID,请通过打码兔开发者后台您添加的软件中添加自己软件可能用到的验证码类型,并获取生成的ID
        bDownloadPictureByLocalMachine - 是否本机下载,因为有些验证码绑定IP,不允许远程获取,如果此标志为TRUE,则打码兔控件将在您机器上自动下载图片并上传。
                        对于没有此限制的验证码,将会由打码用户端下载,效率更高!建议填FALSE
        pulRequestID - 返回请求ID,为后面的GetResult取打码结果所用。
*/
------------------------------------------------------------------------------------------------------------------------------------------
函数原型:int CRACKCAPTCHA_API Decode( const char *pszFileURL,
                        const char *pszCookie,
                        const char *pszReferer,
                        unsigned char ucVerificationCodeLen,
                        unsigned short usTimeout,
                        unsigned long ulVCodeTypeID,
                        bool bDownloadPictureByLocalMachine,
                        unsigned long *pulRequestID);
------------------------------------------------------------------------------------------------------------------------------------------

au3调用方法:
$reqID=DllStructCreate("ulong reqID")

$res=DllCall($_dama_hDll,"int","Decode", _
"str",$url, _;imgurl
"str","", _;cookies
"str",$url, _;referer
"str","0", _;验证码长度
"USHORT",120, _;超时(秒)
"ULONG",82233, _;验证码类型ID
"BOOLEAN",false, _;是否本机下载
"ptr",DllStructGetPtr($reqID) _;请求ID
)

$reqID=DllStructGetData($reqID,"reqID");获取请求id
msgbox(0,$res,$reqID)
请问au3这样的调用方法正确吗,为何每次获取到的reqID都是5呢,还请高人指点,感谢。。。

haijie1223 发表于 2016-1-6 17:14:55

http://wiki.dama2.com/index.php?n=ApiDoc.Au3

ilvjyw 发表于 2016-1-6 18:42:23

打码有啥意思

kxing 发表于 2016-1-6 22:19:43

求教如何类似php的file_get_contents读取图片资源

本帖最后由 kxing 于 2016-1-6 22:20 编辑

一楼的朋友你好,他们的例子给的是DecodeSync同步处理的,我是想要异步处理的
。调用都成功了,就是取出来的requestID总是等于5,肯定是有问题的。所以想请教下这里传入的参数是否正确,感谢回答。。。

kxing 发表于 2016-1-6 22:22:01

回复 2# haijie1223


望指教,谢谢。。。

haijie1223 发表于 2016-1-7 08:27:34

回复 5# kxing


    献给个验证码的图片瞅瞅

haijie1223 发表于 2016-1-7 08:35:48

找到一个验证码图片:

$dll = DllOpen("CrackCaptchaAPI.dll")
$result = DllCall($dll, "int", "Init", "str", "DNF", "str", "03b5962a669eeb14ea8536203dc10695")
$aa = DllStructCreate("char")
DllCall($dll, "int", "Login2", "str", "test", "str", "test")
;~ Dim $url = @ScriptDir & "\yzm.bmp"
Dim $url = @ScriptDir & "\Source.jpg"
DllCall($dll, "int", "DecodeFileSync", "str", $url, "int", "60", "int", 42, "ptr", DllStructGetPtr($aa)) ;上传验证码图片
$result = DllStructGetData($aa, 1)
MsgBox(64, "答案", "获得的答案为:" & $result)
页: [1]
查看完整版本: 求教一个关于调用dll的api问题