从WebBrowser下载图像,在VBA上的剪贴板上复制它

时间:2015-04-27 09:47:01

标签: vb.net webbrowser-control gdi+ clipboard bmp

我在使用VBA中的WebBrowser从网页下载图像时出现问题。

代码如下:

私有函数downloadImage(name As String,index As Integer,path As String,IDName As String)

    Dim objDoc As IHTMLDocument2 = DirectCast(WebBrowser1.Document.DomDocument, IHTMLDocument2)
    Dim imgRange As IHTMLControlRange = (CType(objDoc.body, HTMLBody)).createControlRange()

    Dim count As Integer = 0
    Dim count2 As Integer = 0

    For Each img As IHTMLImgElement In objDoc.images
        If Not IsNothing(img.id) Then
            If img.id.Equals(name) And count.Equals(index) Then

                imgRange.add(CType(img, IHTMLControlElement))
                imgRange.execCommand("Copy", False, Nothing)
                Dim bmp As Bitmap = CType(Clipboard.GetDataObject().GetData(DataFormats.Bitmap), Bitmap)
                bmp.Save(path & IDName & ".bmp", System.Drawing.Imaging.ImageFormat.Bmp)

                count = count + 1
            ElseIf img.id.Equals(name) Then
                count = count + 1
            End If
        End If
        count2 = count2 + 1
    Next
    Return path & IDName
End Function

问题是,在行bmp.Save(路径& IDName&“。bmp”,System.Drawing.Imaging.ImageFormat.Bmp)中,它给出了以下异常:

System.Drawing.dll中出现未处理的“System.Runtime.InteropServices.ExternalException”类型异常

其他信息:错误genéricoenGDI +。

我会尝试查找和测试答案,如果我发现了某些内容则更新。

感谢您的帮助!

在其他帖子和其他论坛/网页上查找此错误,我发现在保存之前内存流关闭时很常见...但我还没有关闭内存流。

问题的一个要求是无法使用src,使用https发送图像,以后删除,这就是我使用剪贴板的原因。

更新: 代码是对的,我的大脑出了什么问题。

错误的文件路径,GDI +上的异常......

我会保留这段代码,可能会帮助某人

0 个答案:

没有答案