iFrame的片段如下
 <iframe style="vertical-align: middle;" src="/ddxt/RandomCode?id=1"  id="codeFrame" name="codeFrame" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no" allowtransparency="yes" height="30" width="73" ></iframe>我用的vb6+webbrowser
src="/ddxt/RandomCode?id=1”是随机图片验证码,bmp图片
那位高手帮忙看一下,如何把图片截取,赋给Picture或者保存都可以

解决方案 »

  1.   

    贴一个以前看到并收藏的代码,这里提供了2中方法,你自己看看:
    ''比如用webbrowser打开地址 http://www.xici.net/user/reg.asp
    ''目的想在picture上显示出当前网页验证码的图像''目前大家貌似都是用下面这个方法获取的
    Set CtrlRange = WebBrowser1.Document.body.createControlRange()
    CtrlRange.Add WebBrowser1.getelementbyid("showverifyimg")
    CtrlRange.execCommand ("Copy")
    Picture1.Picture = Clipboard.GetData
    ''但是感觉不太方便''用读取图片缓存地址的方法,有的网站读取不到,不知道为什么
    ''还有没有其他的方法呢?????求代码 
    Private Sub CommandButton1_Click()
        Dim arr() As Byte
        On Error Resume Next
        Set ms = CreateObject("msscriptcontrol.scriptcontrol")
        ms.Language = "JavaScript"    With CreateObject("WinHttp.WinHttpRequest.5.1")
            .Open "GET", "http://www.xici.net/user/reg.asp", False
            .setRequestHeader "Connection", "Keep-Alive"
            .Send        .Open "POST", "http://www.xici.net/setcode.asp", False
            .setRequestHeader "Referer", "http://www.xici.net/user/reg.asp"
            .setRequestHeader "x-requested-with", "XMLHttpRequest"
            .setRequestHeader "Accept", "application/json, text/javascript, */*; q=0.01"
            .setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
            .setRequestHeader "Connection", "Keep-Alive"
            .Send "act=setkeyvalue"
            tt1 = Split(.responsetext, """")(3)        .Open "GET", "http://www.xici.net/xiciservice/verifyimg2.asp?key=" & tt1, False
            .setRequestHeader "Referer", "http://www.xici.net/user/reg.asp"
            .setRequestHeader "Connection", "Keep-Alive"
            .Send   '获得验证码
            arr = .responseBody        Open "D:\tp1.gif" For Binary As #1
            Put #1, , arr
            Close #1        Do Until Dir("D:\tp1.gif") <> ""
                DoEvents
            Loop        ActiveSheet.Cells(2, 2).Select
            Set s = ActiveSheet.Pictures.Insert("D:\tp1.gif")
            s.ShapeRange.ScaleWidth 2, msoFalse, msoScaleFromTopLeft
            s.ShapeRange.ScaleHeight 2, msoFalse, msoScaleFromTopLeft        sryzm = InputBox("请输入验证码")
            s.Delete
            Set WshShell = CreateObject("WScript.Shell")
            WshShell.Run Environ$("comspec") & " /c Del /F /Q """ & "D:\tp1.gif""", vbHide, False
            Set WshShell = Nothing    End With
    End Sub'..
      

  2.   

    第一种方法有些网站是有问题,而且刷新也有点小问题
    第二种是不是直接用WinHttp.WinHttpRequest.5.1来访问?
    我是想用Webbrowser来做,因为webbrowser看起来更直观,通用性强,而WinHttp.WinHttpRequest.5.1代码过于复杂
      

  3.   

    Topc008 
    tt1是什么