WebBrowser打开的网页上的图片地址 VB
|
admin
2014年3月25日 1:5
本文热度 5247
|
请你们打开 http://qzone.qq.com/ QQ空间的地址看到一个验证码的图片没.这个图片的地址是 http://ptlogin2.qq.com/getimage? 后面的aid=15000101&0.056030716657893775
每次都变
我要的效果是 用WebBrowser打开它也就是QQ空间的登录地址,然后在Image显示此次登录验证码的图片。
也就是WebBrowser打开后网页上的验证码的图片和Image显示的图片一样。
这就需要这个图片的地址,怎么得到。
补充:
我的意思你还不明白,我要做的是一个能登录QQ网站的软件,一开始说的验证码是为了登录QQ空间准备的,主要是这个网站上验证码用你的第一段代码取不出来,所以我一而再再而三的追问,我只要上面
那个效果,你打字也不容易,帮人帮到底,你就用全力帮我吧
该文章在 2014/3/25 1:05:30 编辑过
| |
全部评论4 |
|
admin
2014年3月25日 1:7
'验证码
Set x = WebBrowser1.Document.getElementsByTagName("IMG")(0)
Set CtrlRange = WebBrowser1.Document.body.createControlRange()
CtrlRange.Add (x)
CtrlRange.execCommand ("Copy")
Picture1.Picture = Clipboard.GetData
添加一个图片框,这里面就会有验证码
如果取的图片错误,你自己更改一下WebBrowser1.Document.getElementsByTagName("IMG")(0)最后这个0,直到正确,因为可能验证码的编号不是0
- 追问:
-
改完是不是永远可以用,不用一用一次改一次吧
- 回答:
-
改一次就行了,因为每个网页中验证码不一样
我上面那个0是其他网页中验证码图版的标志
- 追问:
-
怎么看出这最后应该要填什么 我填了好多个 老出现错误
- 回答:
-
一般是0,你从0开始往上加就可以了
- 追问:
-
但是这个网站上只有一个图片算图片,是不是要换种方法,还有你的QQ是多少,我要加QQ问你.
http://adsfile.qq.com/web/portal_08245.jpg那个0向上加1就变成无效指针了.
你要把 http://qzone.qq.com/ 粘贴在浏览器上回车才能到我要说的那个网站.
不然会到 http://qzone.qq.com/index.html.
- 回答:
-
只有一张图片就是0了
为什么每个提问的人都想要QQ?
这个问题跟我的QQ有什么关系?
你给的这个地址
http://adsfile.qq.com/web/portal_08245.jpg
本身就是一个图片,何必要用网页的方法来取得本来就是图片的图片地址?
取得网络图片:
Private Declare Function OleLoadPicturePath Lib "oleaut32.dll" (ByVal szURLorPath As Long, ByVal punkCaller As Long, ByVal dwReserved As Long, ByVal clrReserved As OLE_COLOR, ByRef riid As TGUID, ByRef ppvRet As IPicture) As Long
Private Type TGUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
'加载函数
Public Function LoadPicture(ByVal strFileName As String) As Picture
Dim IID As TGUID
With IID
.Data1 = &H7BF80980
.Data2 = &HBF32
.Data3 = &H101A
.Data4(0) = &H8B
.Data4(1) = &HBB
.Data4(2) = &H0
.Data4(3) = &HAA
.Data4(4) = &H0
.Data4(5) = &H30
.Data4(6) = &HC
.Data4(7) = &HAB
End With
On Error GoTo LocalErr
OleLoadPicturePath StrPtr(strFileName), 0&, 0&, 0&, IID, LoadPicture
Exit Function
LocalErr:
Set LoadPicture = VB.LoadPicture(strFileName)
Err.Clear
End Function
使用方法:
Set 控件名.Pictue = LoadPicture(图片网络路径)
- 补充:
-
给你个忠告,用软件登陆QQ网站是费力不讨好
有验证码,你不能自动识别,那么登陆就没意义,你别问我会不会识别,不会!
你整这么多事,我还是不明白你要做什么? 该评论在 2014/3/25 1:07:10 编辑过
|
|
admin
2014年3月25日 1:7
提问人的意思好像是将那个验证码的图原样显示在图片框中吧,估计没什么实际意义,不知道你是要做什么程序。
不过你可以试试将WebBrowser控件截成图片,再显示其中的一部分,这种方法应该能实现你要的功能,具体怎么做就不知道了,没做过这方面的。你可以找找WebBrowser制成图片的例子来修改,验证图显示的位置是相对固定的。
如果想要那个图片的地址是没用的,取不到的,如果取得到那动态验证就没意义了。 该评论在 2014/3/25 1:07:40 编辑过
|
|
admin
2014年3月25日 1:8
ι.孤雁孇飛的方法不是不行而是他没有弄清楚一个问题验证码图片是在点击登录按钮后才出现的,这中间调用了一段JS。而他的方法,是在代码被执行之前,依次检查网页上的每一个图片。所以他的方法需要修改,加上一步执行网页上打开登录窗的代码,然后再检查图片。
- 追问:
- 我有,但是你能在QQ上告诉我答案,我在添100分
- 追问:
-
我的QQ:602476601
我怕分添上了问题没解决请你谅解。
- 回答:
- 设置什么添加好友回答。。。 你加我吧83193823
该评论在 2014/3/25 1:08:14 编辑过
|
|
admin
2014年3月25日 1:8
楼主的意思应该是用来qq空间留言或者干嘛用的,而楼主用的是vb或者其他语言写的独立软件。
也就是只需要登陆后,qq自动运行,而楼主现在的需要的是,在软件后台打开网页的同时,
把验证码,调取到设置好图片框。
从而操作者手动输入验证码?
可否这样理解?
该评论在 2014/3/25 1:08:35 编辑过
|