none
vb6請問用WebBrowser有辦法抓圖嗎? RRS feed

  • 問題

  • 請問各位大大,我用vb6也有一段很長的時間了,最近想做個程式來抓無名的照片
    不料,Inet1竟然沒有辦法抓到無名的照片
    雖然無名每次重整網址後面的亂碼都會變,不過這都解決了,我把程式分別使用了Inet1,和WebBrowser二種元件
    把Inet1抓不到的照片網址再貼到WebBrowser上都是看的到,沒問題的,但Inet1就是抓不到圖,
    所以想請問WebBrowser有把法把網址的圖抓下來嗎?基本上我已經把照片網址xxx.jpgxxxxxx整段貼上去了,就是只差抓圖而已
    請問各位大大知道WebBrowser該如何抓圖嗎?還是除了Inet1外,還有其他可下載圖片的元件嗎?謝謝

    2011年12月29日 上午 03:25

解答

  • Option Explicit
    Private Sub Command1_Click()
    Dim picURL As String
    picURL = "http://www.wretch.cc/album/show.php?i=steve263&b=593&f=1454271249&p=0&sp=0"
    WebBrowser1.Navigate picURL
    End Sub
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim X
    Dim CtrlRange
    Dim i As Integer
    Dim counter As Integer
    counter = 0
    For Each X In WebBrowser1.Document.All
            
            If (X.tagName = "IMG") Then
                 Set CtrlRange = WebBrowser1.Document.body.createControlRange()
                 CtrlRange.Add (X)
                 CtrlRange.execCommand ("Copy")
                 Set Image1.Picture = Clipboard.GetData
                 SavePicture Image1.Picture, "C:\img" + CStr(counter) + ".jpg"
                 counter = counter + 1
             End If
        
    Next
    End Sub
    2011年12月29日 下午 02:23

所有回覆

  • 你好,這是不是你要的阿??

    http://walance.blog.hexun.com/19465514_d.html

    2011年12月29日 上午 04:30
  • 喔~謝謝,雖然有點看不懂,但我會試試看,謝謝
    2011年12月29日 上午 04:44
  • Private Sub Command1_Click()
    Dim str As String
    Dim b() As Byte
    str = "http://www.diswen.com/photo/zaoqijiaoyu/renshidongwu/441-daxiang-2.jpg"
    b() = Inet1.OpenURL(str, 1)
       Open "C:\Test.jpg" For Binary Access Write As #1
       Put #1, , b()
       Close #1
    End Sub
    2011年12月29日 上午 05:26
  • 你好喔~ inet確定是不行的喔~結果都是空的,網址也確定過是可行的,因為我同時將網址輸出給WebBrowser使用是正常的

     

    輸出結果為

    <HEAD><TITLE>Forbidden</TITLE></HEAD>
    <BODY BGCOLOR="white" FGCOLOR="black">
    <FONT FACE="Helvetica,Arial"><B>
    </B></FONT>

    <!-- default "Forbidden" response (403) -->
    </BODY>
     

    完全不行丫,只好再看看上面那個可不可行了~



    2011年12月29日 上午 06:46
  • Private Sub Command1_Click()
    Dim str As String
    Dim b() As Byte
    str = "http://www.diswen.com/photo/zaoqijiaoyu/renshidongwu/441-daxiang-2.jpg"
    b() = Inet1.OpenURL(str, 1)
       Open "C:\Test.jpg" For Binary Access Write As #1
       Put #1, , b()
       Close #1
    End Sub

    我也試過大哥的這個程式,也是不行耶,那我那個是相同的,inet抓圖可以,但對無名相簿就沒用,很奇怪耶~
    2011年12月29日 上午 06:48
  • 你好,這是不是你要的阿??

    http://walance.blog.hexun.com/19465514_d.html


    “Microsoft Internet Controls”、“Microsoft XML,5.0”、“Microsoft ActiveX Data Objects 2.8 Library”

    大大好喔,第一個我有,但第二第三我的vb完全沒有,要去哪裡下載嗎?謝謝

    2011年12月29日 上午 07:20
  • “Microsoft XML,5.0”、“Microsoft ActiveX Data Objects 2.8 Library”  那兩個都在 "專案(project)">>參考(references)底下   

    你要抓的圖示動態產生出來的..上面那兩個方法是不行的!! VB6我不太熟,拍謝!!  

    你有.net嗎? 這是我用.net寫的...  , 不過 WebBrowser應該是在vb6也有類似的屬性或方法,你參考依下做修改應該就可以出了!! 

    ''我太弱了,只能幫你到這裡了

    我也是google到這裡看的...

    http://www.blueshop.com.tw/board/show.asp?subcde=BRD20081006201924O11

    Public Class Form1

     

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            WebBrowser1.Navigate(TextBox1.Text)

        End Sub

     

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            TextBox1.Text = "http://www.wretch.cc/album/show.php?i=steve263&b=593&f=1454271249&p=0&sp=0"

        End Sub

     

        Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

            Dim rang = WebBrowser1.Document.DomDocument.Body.createControlRange()

            Dim Img = WebBrowser1.Document.Images(1).DomElement  '自己找一下是哪一個圖片

            rang.add(Img)

            rang.execCommand("Copy")

            Dim RegImg As Image = Clipboard.GetImage()

            Clipboard.Clear()

            Me.BackgroundImageLayout = ImageLayout.None

            Me.BackgroundImage = RegImg

            Me.BackgroundImage.Save("c:\test_save.jpg")

        End Sub

    End Class

     

     



    2011年12月29日 上午 07:42
  • “Microsoft XML,5.0”、“Microsoft ActiveX Data Objects 2.8 Library”  那兩個都在 "專案(project)">>參考(references)底下   

    你要抓的圖示動態產生出來的..上面那兩個方法是不行的!! VB6我不太熟,拍謝!!  

    你有.net嗎? 這是我用.net寫的...  , 不過 WebBrowser應該是在vb6也有類似的屬性或方法,你參考依下做修改應該就可以出了!! 

    感謝大哥,那一篇其實我也有看過,因為不是vb6的真的看不太懂,不過我會再努力努力努力看看要如何將大哥的轉成vb6來使用,謝謝喔

    2011年12月29日 上午 07:50
  • Option Explicit
    Private Sub Command1_Click()
    Dim picURL As String
    picURL = "http://www.wretch.cc/album/show.php?i=steve263&b=593&f=1454271249&p=0&sp=0"
    WebBrowser1.Navigate picURL
    End Sub
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim X
    Dim CtrlRange
    Dim i As Integer
    Dim counter As Integer
    counter = 0
    For Each X In WebBrowser1.Document.All
            counter = counter + 1
            If (X.tagName = "IMG") And (counter = 165) Then   '這個165是我自己算的...你要抓哪一張圖自己算一下
                 Set CtrlRange = WebBrowser1.Document.body.createControlRange()
                 CtrlRange.Add (X)
                 CtrlRange.execCommand ("Copy")
                 Set Image1.Picture = Clipboard.GetData
                 SavePicture Image1.Picture, "C:\test.jpg"
             End If
    Next
    End Sub
    2011年12月29日 上午 08:36
  • Option Explicit
    Private Sub Command1_Click()
    Dim picURL As String
    picURL = "http://www.wretch.cc/album/show.php?i=steve263&b=593&f=1454271249&p=0&sp=0"
    WebBrowser1.Navigate picURL
    End Sub
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim X

     

     

    大哥,您好,您誤會我的意思了,基本上圖是動態的沒錯,不過那些網址都已經找出來了,只要沒有重整,那個圖網址基本上是不變的,所以我將從inet取出的網址轉入WebBrowser1是看的到圖片的,只要沒有重整,基本上都是不變的,所以網址上就只有那一張圖片檔,現在就是以inet方式無法將此圖抓下,而用WebBrowser1開啟這個圖片網址,卻是沒問題,所以想了解有WebBrowser1是否可以抓圖呢?謝謝喔

     

     



    2011年12月29日 上午 09:37
  • Option Explicit
    Private Sub Command1_Click()
    Dim picURL As String
    picURL = "http://www.wretch.cc/album/show.php?i=steve263&b=593&f=1454271249&p=0&sp=0"
    WebBrowser1.Navigate picURL
    End Sub
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim X

     大哥,不好意思,上面的語法還是沒有抓到任何圖片耶~

    我也有引入WebBrowser1,Image1了還是不行

    不如我改用另一種問法好了


    請問嘿嘿嘿大哥,我想將WebBrowser1裡所有看到的圖片全部以下載方式下載下來,請問有這個語法嗎?謝謝

     



    2011年12月29日 上午 09:50
  • 請參考

    How to save image(picture) from WebBrowser control


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2011年12月29日 上午 10:55
  • 請參考

    How to save image(picture) from WebBrowser control


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    thk,我會試試看的,謝謝喔~
    2011年12月29日 下午 01:00
  • 從基本觀念去看:

    http://social.msdn.microsoft.com/Search/zh-TW/?Refinement=112&query=%e6%a9%9f%e5%99%a8%e4%ba%ba%20%20%e9%98%b2


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年12月29日 下午 01:59
  • Option Explicit
    Private Sub Command1_Click()
    Dim picURL As String
    picURL = "http://www.wretch.cc/album/show.php?i=steve263&b=593&f=1454271249&p=0&sp=0"
    WebBrowser1.Navigate picURL
    End Sub
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim X
    Dim CtrlRange
    Dim i As Integer
    Dim counter As Integer
    counter = 0
    For Each X In WebBrowser1.Document.All
            
            If (X.tagName = "IMG") Then
                 Set CtrlRange = WebBrowser1.Document.body.createControlRange()
                 CtrlRange.Add (X)
                 CtrlRange.execCommand ("Copy")
                 Set Image1.Picture = Clipboard.GetData
                 SavePicture Image1.Picture, "C:\img" + CStr(counter) + ".jpg"
                 counter = counter + 1
             End If
        
    Next
    End Sub
    2011年12月29日 下午 02:23
  • 從基本觀念去看:

    http://social.msdn.microsoft.com/Search/zh-TW/?Refinement=112&query=%e6%a9%9f%e5%99%a8%e4%ba%ba%20%20%e9%98%b2


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    ???大哥~不太懂耶?
    2011年12月29日 下午 02:59
  • Option Explicit
    Private Sub Command1_Click()
    Dim picURL As String
    picURL = "http://www.wretch.cc/album/show.php?i=steve263&b=593&f=1454271249&p=0&sp=0"
    WebBrowser1.Navigate picURL
    End Sub
    大哥大大,終於可以了,感謝您啦~我祟拜您啦~哈哈哈哈~接著就是研究怎麼把他縮短就可以開始掃圖了,,謝謝您了~大哥~
    2011年12月29日 下午 03:02