如何在GUI上显示验证码?
如何把类如百度注册页面的验证码在GUI上显示出来。那位高人指点一下,不是图片类型的!https://passport.baidu.com/?reg&tpl=mn
[ 本帖最后由 amgloon 于 2008-12-15 12:46 编辑 ] http://www.autoitx.com/forum.php?mod=viewthread&tid=1237&highlight=%D1%E9%D6%A4%C2%EB
[ 本帖最后由 范统.贾 于 2008-12-12 15:30 编辑 ] 这个不行的。我试过了。。 有些网页的图片采用的是非正常的方式显示,那要下载那个链接的数据(即图片)然后再显示,较麻烦啊... 是啊。百度就是那个网页连接,有人说用DHTML.可以弄..但是我不懂....= =
回复 4# liongodmien 的帖子
不是“非正常”,这个是PHP调用GD输出的图片 那有办法实现在GUI上显示么? 直接把图片下载下来就可以,保存为BMP图片。:face (14):然后显示在GUI 窗口而却当下载这个验证码后,相当于在网页中刷新了下验证码,这个下载下来的验证码和网页中需要输入的验证码是同步的 如果可以用图片另存为把验证码保存为BMP图片。那样是可以跟页面同步的....不等于是刷新.
有命令实现么? 下载了之后就算你不刷新页面,页面要求输入的验证码也应该是你下载后显示在GUI上的,你把GUI上输入的字符输入到网页上,然后再提交就可以了 不对的....如果是用连接下再图片的话.那个验证码是跟页面所显示的验证码是不一样的....但是他提交的时候是按你所打开的页面上的验证码来确认的 测试了一下。。验证码直接取最后一次下载或显示就可以了
https://passport.baidu.com/?verifypic 直接下载显示就可以了,不理管和注册页面的不一样,
也应当不是才对。 恩.在百度上是可以实现的...它的验证码是跟那个同步的。
如果有的网站不同步的话.有什么办法不? #include <IE.au3>
#include <GUIConstants.au3>
#include <ClipBoard.au3>
#include <GDIPlus.au3>
#include <Winapi.au3>
$OpenPage = _IECreate("https://passport.baidu.com/?reg")
$iVerifyPic = _IEImgGetCollection($OpenPage, 2)
_GDIPlus_Startup()
$iVerifyPics = $OpenPage.Document.body.createControlRange()
$iVerifyPics.add($iVerifyPic)
$iVerifyPics.Select ()
$iVerifyPics.execCommand('Copy')
Sleep(500)
_ClipBoard_Open(0)
$iVerifyPics = _ClipBoard_GetDataEx($CF_BITMAP)
$iVerifyPics = _GDIPlus_BitmapCreateFromHBITMAP($iVerifyPics)
_ClipBoard_Close()
FileDelete(@TempDir & "\VerifyPic.bmp")
_GDIPlus_ImageSaveToFile($iVerifyPics, @TempDir & "\VerifyPic.bmp")
GUICreate("VerifyPic", 150, 150, -1, -1, -1)
GUISetBkColor(0xFFFFFF)
GUISetState()
$Img = GUICtrlCreatePic(@TempDir & "\VerifyPic.bmp", 10, 20, _GDIPlus_ImageGetWidth($iVerifyPics), _GDIPlus_ImageGetHeight($iVerifyPics))
_GDIPlus_BitmapDispose($iVerifyPics)
_GDIPlus_Shutdown()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then
GUIDelete()
ExitLoop
EndIf
WEnd 验证码被保存在session中,只要你不重复打开那个页面,验证码是不会过期的
页:
[1]
2