Public Function GetCheckCode()
Dim xmlHttp As Object
Dim Pic
Dim PicData As Object
Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
Set PicData = CreateObject("Adodb.Stream")
xmlHttp.open "get", "http://www.pceggs.com/CheckCode.aspx", True
xmlHttp.setRequestHeader "Accept", "*/*"
xmlHttp.setRequestHeader "Referer", "http://www.pceggs.com/Login.aspx"
xmlHttp.setRequestHeader "Accept-Language", "zh-cn"
xmlHttp.setRequestHeader "Accept-Encoding", "gzip, deflate"
xmlHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 2.0.50727)"
xmlHttp.setRequestHeader "Host", "www.pceggs.com"
xmlHttp.setRequestHeader "Connection", "Keep-Alive"
xmlHttp.send
While xmlHttp.ReadyState <> 4
DoEvents
Wend
Pic = xmlHttp.responseBody
With PicData
.Type = 1
.open
.write Pic
.SaveToFile App.Path & "\CheckCode.jpg", 2
.Cancel
.Close
End With
Set PicData = Nothing
Set xmlHttp = Nothing
frmLogin.ImgYZM.Picture = LoadPicture(App.Path & "\CheckCode.jpg")
End Function
我在VB6.0中通过WebBrowser控件通过以下代码获取图片:
'没有frame的情况
Private Sub GetImg()
Dim doc As HTMLDocument
Dim body As HTMLBody
Dim range As IHTMLControlRange
Dim img As IHTMLControlElement
Set doc = WebBrowser1.Document
Set body = doc.body
Set range = body.createControlRange
Set img = doc.images("checkcodeimg")
Clipboard.Clear
range.Add img
range.execCommand ("copy")
Picture1.Picture = Clipboard.GetData
Set img = Nothing
Set range = Nothing
Set body = Nothing
Set doc = Nothing
End Sub
如果图片没有包含在frame中,通过上面的函数可以成功获取到图片;
如果图片包含在frame中,通过下面的函数:
Private Sub GetImageFromWeb2()
Dim doc As Object
Set doc = WebBrowser1.Document
Dim body As HTMLBody
Set body = doc.body
Dim img As IHTMLControlElement
Set img = WebBrowser1.Document.frames("checkcodeframe").Document.images("checkcodeimg")
Dim range As Object
Set range = WebBrowser1.Document.body.createControlRange()
range.Add img
range.execCommand "Copy", False, Null
Set img = Nothing
Set range = Nothing
Me.Picture3.Picture = Clipboard.GetData()
Clipboard.Clear
End Sub
在该函数执行到range.Add img时出现错误“参数无效”,参看两个函数中的img变量都是一样的,类型也相同,而且都有有效值,不知道是什么原因,麻烦解答一下,谢谢!
网页示例:
//index.htm
Example src="CheckCode.htm" frameBorder=0 scrolling=no
height=23>
//CheckCode.htm
Dim xmlHttp As Object
Dim Pic
Dim PicData As Object
Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
Set PicData = CreateObject("Adodb.Stream")
xmlHttp.open "get", "http://www.pceggs.com/CheckCode.aspx", True
xmlHttp.setRequestHeader "Accept", "*/*"
xmlHttp.setRequestHeader "Referer", "http://www.pceggs.com/Login.aspx"
xmlHttp.setRequestHeader "Accept-Language", "zh-cn"
xmlHttp.setRequestHeader "Accept-Encoding", "gzip, deflate"
xmlHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 2.0.50727)"
xmlHttp.setRequestHeader "Host", "www.pceggs.com"
xmlHttp.setRequestHeader "Connection", "Keep-Alive"
xmlHttp.send
While xmlHttp.ReadyState <> 4
DoEvents
Wend
Pic = xmlHttp.responseBody
With PicData
.Type = 1
.open
.write Pic
.SaveToFile App.Path & "\CheckCode.jpg", 2
.Cancel
.Close
End With
Set PicData = Nothing
Set xmlHttp = Nothing
frmLogin.ImgYZM.Picture = LoadPicture(App.Path & "\CheckCode.jpg")
End Function
我在VB6.0中通过WebBrowser控件通过以下代码获取图片:
'没有frame的情况
Private Sub GetImg()
Dim doc As HTMLDocument
Dim body As HTMLBody
Dim range As IHTMLControlRange
Dim img As IHTMLControlElement
Set doc = WebBrowser1.Document
Set body = doc.body
Set range = body.createControlRange
Set img = doc.images("checkcodeimg")
Clipboard.Clear
range.Add img
range.execCommand ("copy")
Picture1.Picture = Clipboard.GetData
Set img = Nothing
Set range = Nothing
Set body = Nothing
Set doc = Nothing
End Sub
如果图片没有包含在frame中,通过上面的函数可以成功获取到图片;
如果图片包含在frame中,通过下面的函数:
Private Sub GetImageFromWeb2()
Dim doc As Object
Set doc = WebBrowser1.Document
Dim body As HTMLBody
Set body = doc.body
Dim img As IHTMLControlElement
Set img = WebBrowser1.Document.frames("checkcodeframe").Document.images("checkcodeimg")
Dim range As Object
Set range = WebBrowser1.Document.body.createControlRange()
range.Add img
range.execCommand "Copy", False, Null
Set img = Nothing
Set range = Nothing
Me.Picture3.Picture = Clipboard.GetData()
Clipboard.Clear
End Sub
在该函数执行到range.Add img时出现错误“参数无效”,参看两个函数中的img变量都是一样的,类型也相同,而且都有有效值,不知道是什么原因,麻烦解答一下,谢谢!
网页示例:
//index.htm
height=23>
//CheckCode.htm

0人赞
分享
二维码
赏一个