Web1.Silent = True
    Dim x, CtrlRange
    Dim sPath As String
    Dim gstrfilename
    sPath = App.Path & "\"    Dim ii As Long
    ii = 0
    For Each x In Web1.Document.All
        If x.tagName = "IMG" Then
                Set CtrlRange = Web1.Document.body.createControlRange()
                CtrlRange.Add (x)
                CtrlRange.execCommand ("Copy")              
                SavePicture Clipboard.GetData, sPath & ii & ".bmp"
                ii = ii + 1
        End If
    Next以上代码可以将网页中全部图片保存出来
如何才能保存只需要到的图片

解决方案 »

  1.   

    小弟对webbrowser的使用不是很熟,哪位大哥有这方面的资料
      

  2.   

    [名称]           IE浏览器完全控制[源代码内容]    相信现在绝大多数计算机上使用的是IE浏览器。如何通过编程控制IE的操作呢,本文将一步步介绍如何通过VB 
    调用IE的对象库来对IE进行控制。 
        本文使用的编程工具是VB6英文企业版,浏览器是IE5,以下的代码只能在IE4及以上版本下运行。另外为了能深 
    入了解程序代码,最好能安装MSDN。文中的所有对象、函数、事件在其中都可以查到。 
         
        一、如何获得Windows中所有打开的浏览器窗口 
        首先打开VB,建立一个新工程,点击菜单 Projects | References 项,在Available References 列表中选择 
    Microsoft Internet Controls项将Internet对象引用介入到工程中。添加一个ListBox到Form1,然后在Form1中添 
    加如下代码: 
        Dim dWinFolder As New ShellWindows     Private Sub Form_Load() 
            Dim objIE As Object 
         
            For Each objIE In dWinFolder 
                If InStr(1, objIE.FullName, "IEXPLORE.EXE", vbTextCompare) <> 0 Then 
                    List1.AddItem objIE.LocationURL 
                End If 
            Next 
        End Sub 
        打开几个浏览器窗口,然后运行程序,可以看到所有浏览窗口中的URL地址都在List1中列了出来。 
        上面程序中的ShellWindows对象是描述当前所有打开的“浏览窗口”对象集合的对象,利用For...Each语句可以 
    获得其中所有的浏览窗口对象。这是一个WebBrowser对象,在MSDN索引中通过“WebBrowser Object”中可以找到该 
    对象的详细介绍 
        在ShellWindows中的浏览窗口对象不仅包含IE,还包含Explore窗口(向资源管理器或者“我的电脑”窗口就是 
    Explore)。只不过它们的宿主程序一个是IEXPLORE.EXE,一个是EXPLORE.EXE。所以对每一个对象首先根据其FulName 
    属性来判断窗口是IE浏览器,如果是,则将该窗口的URL地址列出来。 
        通过WebBrowser对象可以获得和设置浏览器窗口中的很多属性,例如窗口大小、工具栏、状态栏状态以及控制 
    窗口的浏览等,大家通过MSDN都可以查到。     二、如何得到每一个浏览窗口的内容 
        在上面程序的Form1中再添加一个TextBox控件,将MultiLine属性设置为True,然后在List1的Click事件中添加如 
    下代码: 
        Dim objDoc As Object 
        Dim objIE As Object 
         
        For Each objIE In dWinFolder 
            If objIE.LocationURL = List1.List(List1.ListIndex) Then 
                Set objDoc = objIE.Document 
             
                For i = 1 To objDoc.All.length - 1 
                    If objDoc.All(i).tagname = "BODY" Then 
                        Text1.Text = objDoc.All(i).innerText 
                    End If 
                Next 
                Exit For 
            End If 
        Next 
        运行程序,点击ListBox中的一个列表,所对应的浏览器窗口中的文本内容就会显示在TextBox中。 
        在上面的程序中,首先根据ListBox中选择的URL获得Webrowser对象,然后根据Document属性获得文档对象。我们知道 
    一个页面中包括HEAD、TITLE、BODY部分,页面中还可能包括Applet、Script、连接、表单等,这些在文档中都是一个对象 
    在程序中就是循环文档对象下的所有对象,如果对象的名称是“BODY”,说明对象代表HTML文档的正文部分,那么访问对象 
    的innerText属性获得文档正文。关于Document对象更详细的信息,大家可以参考MSDN中Webbrowser object帮助中的 
    Document属性连接。 
        三、响应IE事件 
        上面的部分只是介绍了如何访问Webbrowser对象的属性,下面介绍如何监控IE事件。 
        在Form1中再添加一个CommandButton。在代码窗口的 [Gengeral]-[Declaration]添加下面的定义: 
        Dim WithEvents eventIE As WebBrowser_V1 
        这样就在Form1中新添加了一个对象,然后在Command1的Click事件中添加如下代码: 
        Dim objIE As Object 
         
        For Each objIE In dWinFolder 
            If objIE.LocationURL = List1.List(List1.ListIndex) Then 
                Set eventIE = objIE 
                Command1.Enabled = False 
                Text1.Text = "" 
                Exit For 
            End If 
        Next 
        在eventIE的NavigateComplete事件中添加如下代码: 
        Text1.Text = Text1.Text + Chr(13) + Chr(10) + URL 
        在Form的UnLoad事件中添加下面一句代码: 
        Set dWinFolder = Nothing 
        运行程序,在ListBox中选择一个URL后点击Command1,然后转到与所选项向对应的浏览窗口输入网站地址进行浏览,可以 
    看到所浏览过的站点地址在TextBox中一一列出。 
        上面的程序实现起来也很简单。首先定义一个可响应事件的Webbrowser对象,然后将它与在ListBox中选择的Webbrowser对 
    象联系起来,当浏览器发生变化时,eventIE对象就能响应相应的事件。 
        根据IE版本的不同,Webbrowser对象也不同,作者的浏览器是IE5.0,在上面将eventIE定义为WebBrowser_V1运行通过,如 
    果你的浏览器版本为4.0的话,可能在执行 Set eventIE = objIE 时,可能产生 Type mistake 错误,这时你可以尝试将 
    eventIE定义为:Dim WithEvents eventIE As WebBrowser  
         以上代码保存于: SourceCode Explorer(源代码数据库)
               复制时间: 2005-10-17 10:05:27
               软件版本: 1.0.882
               软件作者: Shawls
                 E-Mail: [email protected]
                     QQ: 9181729
      

  3.   

    [名称]           访问因特网并调用Explorer [源代码内容]1.实现方法和控件介绍 
      首先在VB 6菜单上点击“工程/部件...”,弹出“部件”对话框,在对话框的控件卡中选中Microsoft Internet Controls控件,点击“确定”按钮后工具箱上增加一个WebBrowser图标,将它加到Form中。 
    该控件有以下几个重要的方法和事件: 
    ●GoHome:装入IE设定的起始页; 
    ●Navigate:装入页面,如Object.Navigate url,其中url为URL地址,如http://www.microsoft.com; 
    ●GoBack:返回上一个页面; 
    ●GoForward:进入下一个页面; 
    ●Stop:停止载入页面; 
    ●BeforeNavigate Event:在每次装入页面前调用该事件; 
    ●StatusTextChange Event:每次浏览器的操作状态改变时调用该事件。 
    2.具体的访问方法 
    将WebBrowser图标添加到Form中。并在Form上添加4个命令按钮,Name属性分别为:GoButton、BackButton、ForwardButton和StopButton,通过这4个命令按钮可以实现对浏览器的操作。在Form上添加一个TextBox控件,用来输入和显示当前的页面地址。在Form上添加一个Label控件,用来显示当前浏览器操作状态。 
    /*载入Form*/ 
    Private Sub Form_Load() 
    /*程序装入后进入IE设定的起始页*/ 
    WebBrowser1.GoHome 
    End Sub 
      
    /*改变Form尺寸*/ 
    Private Sub Form_Resize() 
    /*改变窗口大小后同时改变控件的大小*/ 
    WebBrowser1.Width = Form1.ScaleWidth 
    WebBrowser1.Height = Form1.ScaleHeight - 900 
    Label1.Width = Form1.ScaleWidth 
    Label1.Top = Form1.ScaleHeight - 300 
    End Sub 
      
    Private Sub BackButton_Click() 
    /*返回上一个页面*/ 
    WebBrowser1.GoBack 
    End Sub 
      
    Private Sub ForwardButton_Click() 
    /*进入下一个页面*/ 
    WebBrowser1.GoForward 
    End Sub 
      
    Private Sub GoButton_Click() 
    /*浏览输入的页面*/ 
    WebBrowser1.Navigate (Text1.Text) 
    End Sub 
      
    Private Sub StopButton_Click() 
    /*停止浏览*/ 
    WebBrowser1.Stop 
    End Sub 
      
    Private Sub Text1_KeyPress(KeyAscii As Integer) 
    /*输入地址后进行浏览*/ 
    If KeyAscii = 13 Then 
    WebBrowser1.Navigate (Text1.Text) 
    End If 
    End Sub 
      
    Private Sub WebBrowser1_BeforeNavigate(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Cancel As Boolean) 
    /*将当前显示的页面的URL地址显示在Text1上*/ Text1.Text = URL 
    End Sub 
      
    Private Sub WebBrowser1_StatusTextChange(ByVal Text As String) 
    /*Label1显示当前页面装入情况*/ 
    Label1.Caption = Text 
    End Sub
         以上代码保存于: SourceCode Explorer(源代码数据库)
               复制时间: 2005-10-17 10:05:43
               软件版本: 1.0.882
               软件作者: Shawls
                 E-Mail: [email protected]
                     QQ: 9181729