zjm121221 2023-09-21 22:11 采纳率: 7.4%
浏览 7
已结题

VB6.0无法加载网页验证码图片到picturebox中,求解。

VB6.0加载网页验证码图片到picturebox中时,如下列代码和图片,运行后提示add方法失败,求指导可行的代码。

Private Sub Command1_Click()
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("captcha")
Clipboard.Clear
range.Add img
range.execCommand ("copy")
Picture1(0).Picture = Clipboard.GetData
Set img = Nothing
Set range = Nothing
Set body = Nothing
Set doc = Nothing
End Sub

img


img


img


img

  • 写回答

7条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-21 22:29
    关注

    引用 皆我百晓生 小程序回应内容作答:
    在VB6.0中将网页验证码图片加载到PictureBox中的过程中遇到问题,提示add方法失败。这可能是由于无法正确获取WebBrowser控件的document。你可以尝试使用DocumentComplete事件来确保文档加载完成后再进行操作。以下是一个修改后的示例代码:

    Private Sub Command1_Click()
        WebBrowser1.Navigate "your_webpage_url"
    End Sub
    
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        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
        
        ' 根据验证码的元素id或其他属性查找图片元素
        Set img = doc.getElementById("captcha")
        
        If Not img Is Nothing Then
            Clipboard.Clear
            range.add img
            range.execCommand "Copy", False, vbNull
            Picture1.Picture = Clipboard.GetData
        End If
        
        Set img = Nothing
        Set range = Nothing
        Set body = Nothing
        Set doc = Nothing
    End Sub
    

    在上述代码中,我们使用了WebBrowser1_DocumentComplete事件,在按钮点击后导航到网页时触发该事件。在该事件中,我们可以获取WebBrowser控件的文档,并使用其提供的方法和属性来查找并处理验证码图片。

    请根据实际情况修改your_webpage_url和验证码图片元素的查找方法(例如使用元素id或其他属性)。确保已正确引用Microsoft HTML Object Library。这样,当文档加载完成后,代码将查找并将验证码图片加载到PictureBox中。

    请注意,由于无法确定实际的网页URL和验证码图片元素的属性,请根据你的实际情况进行调整。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月22日
  • 创建了问题 9月21日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号