none
c#如何获取网页快照 RRS feed

  • 问题

  • 只输入网址,就可以获取。不需浏览器加载,然后手动截图。不知要用到哪方面的知识。
    2009年6月15日 12:45

答案

  • 你好!
         可以参考这里,希望对你有帮助:
    http://blog.leigle.com/Leigle_Exper/Csharp/html/LG2188E77BE1532133A4E8084960B0EB35.html
    周雪峰
    2009年6月15日 13:27
    版主
  • 你好,

    加个断点可以具体的分析问题,是ScrollHeight的值是0,在这种情况。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • 已标记为答案 ogra 2009年6月18日 11:29
    2009年6月18日 6:11
    版主

全部回复

  • 你好!
         可以参考这里,希望对你有帮助:
    http://blog.leigle.com/Leigle_Exper/Csharp/html/LG2188E77BE1532133A4E8084960B0EB35.html
    周雪峰
    2009年6月15日 13:27
    版主
  • 我试用了一下。发现有些问题。当截取sina的时候,会有错误提示。
    2009年6月15日 14:04
  • 你好,

    那应该是正则表达式的参数不对,试一下下面的方法:


    Public Class Form1

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            WebBrowser1.Navigate(txtURL.Text)
            Me.Button1.Enabled = False
        End Sub
        Private Sub GetImage()
            If WebBrowser1.Document Is Nothing Then
                Exit Sub
            End If
            Try
                Dim scrollHeight As Integer = WebBrowser1.Document.Body.ScrollRectangle.Height
                Dim scrollWidth As Integer = WebBrowser1.Document.Body.ScrollRectangle.Width
                WebBrowser1.Size = New Size(scrollWidth, scrollHeight)
                Dim bm As New Bitmap(scrollWidth, scrollHeight)
                WebBrowser1.DrawToBitmap(bm, New Rectangle(0, 0, bm.Width, bm.Height))
                bm.Save("test" & Date.Now.Second.ToString & ".png", System.Drawing.Imaging.ImageFormat.Png)
                bm.Dispose()
            Catch e As Exception
                MessageBox.Show(e.Message, "保存失败", MessageBoxButtons.OK, MessageBoxIcon.[Error])
            Finally
            End Try
            Me.Button1.Enabled = True
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            If (Not WebBrowser1.IsBusy) Then
                GetImage()
            End If
        End Sub
    End Class

    我认为你需要用Graphics. CopyFromScreen方法 去截屏,你需要修改上面的方法去实现你的需要。有问题时来和我们讨论。

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年6月17日 2:06
    版主
  • 不关事吧。好像是获取scrollwidth和scrollheight出错。
    2009年6月17日 10:11
  • 你好,

    加个断点可以具体的分析问题,是ScrollHeight的值是0,在这种情况。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • 已标记为答案 ogra 2009年6月18日 11:29
    2009年6月18日 6:11
    版主