找回密码
 加入
搜索
查看: 7467|回复: 18

如何在GUI上显示验证码?

[复制链接]
发表于 2008-12-12 14:42:09 | 显示全部楼层 |阅读模式
如何把类如百度注册页面的验证码在GUI上显示出来。那位高人指点一下,不是图片类型的!

https://passport.baidu.com/?reg&tpl=mn

[ 本帖最后由 amgloon 于 2008-12-15 12:46 编辑 ]
发表于 2008-12-12 15:17:36 | 显示全部楼层
http://www.autoitx.com/forum.php ... =%D1%E9%D6%A4%C2%EB

[ 本帖最后由 范统.贾 于 2008-12-12 15:30 编辑 ]
 楼主| 发表于 2008-12-12 15:18:23 | 显示全部楼层
这个不行的。我试过了。。
发表于 2008-12-12 16:29:12 | 显示全部楼层
有些网页的图片采用的是非正常的方式显示,那要下载那个链接的数据(即图片)然后再显示,较麻烦啊...
 楼主| 发表于 2008-12-12 16:46:01 | 显示全部楼层
是啊。百度就是那个网页连接,有人说用DHTML.可以弄..但是我不懂....= =
发表于 2008-12-12 18:59:32 | 显示全部楼层

回复 4# liongodmien 的帖子

不是“非正常”,这个是PHP调用GD输出的图片
 楼主| 发表于 2008-12-12 19:25:52 | 显示全部楼层
那有办法实现在GUI上显示么?
发表于 2008-12-12 20:16:53 | 显示全部楼层
直接把图片下载下来就可以,保存为BMP图片。  然后显示在GUI 窗口
而却当下载这个验证码后,相当于在网页中刷新了下验证码,这个下载下来的验证码和网页中需要输入的验证码是同步的
 楼主| 发表于 2008-12-13 09:04:40 | 显示全部楼层
如果可以用图片另存为把验证码保存为BMP图片。那样是可以跟页面同步的....不等于是刷新.
有命令实现么?
发表于 2008-12-13 21:22:52 | 显示全部楼层
下载了之后就算你不刷新页面,页面要求输入的验证码也应该是你下载后显示在GUI上的,你把GUI上输入的字符输入到网页上,然后再提交就可以了
 楼主| 发表于 2008-12-14 10:12:39 | 显示全部楼层
不对的....如果是用连接下再图片的话.那个验证码是跟页面所显示的验证码是不一样的....但是他提交的时候是按你所打开的页面上的验证码来确认的
发表于 2008-12-14 18:13:13 | 显示全部楼层
测试了一下。。验证码直接取最后一次下载或显示就可以了
https://passport.baidu.com/?verifypic 直接下载显示就可以了,不理管和注册页面的不一样,
也应当不是才对。
 楼主| 发表于 2008-12-15 09:15:33 | 显示全部楼层
恩.在百度上是可以实现的...它的验证码是跟那个同步的。

如果有的网站不同步的话.有什么办法不?
发表于 2008-12-15 11:55:50 | 显示全部楼层
#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
发表于 2008-12-15 12:44:41 | 显示全部楼层
验证码被保存在session中,只要你不重复打开那个页面,验证码是不会过期的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 06:19 , Processed in 0.080867 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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