重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VB2010でMDI親フォームに表示したForm1のWebBrowser1をキャプチャして保存するコードを知りたいです。

A 回答 (2件)

こんにちは




>WebBrowser1をキャプチャ
WebBrowserはキャプチャすると何かと問題が発生します。


サンプルを作成しましたが、おそらくフレームなどのタグがあるとNGになると思います。


サンプルではスタートアップフォームをMDIParent1にしてあります。


MDIParent1のコードの一番したに下記のコードを追加します。

Private Sub MDIParent1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
Dim f1 As New Form1
Me.IsMdiContainer = True
f1.MdiParent = Me
f1.Show()
End Sub


Class Form1側
Public Class Form1
Private Sub f() Handles MyBase.Shown
WebBrowser1.Navigate("http://oshiete.goo.ne.jp/qa/8408324.html")
End Sub
Private Declare Function PrintWindow Lib "User32" (ByVal hWnd As IntPtr, ByVal hdcBlt As IntPtr, ByVal nFlags As Integer) As Boolean
Private Sub キャプチャToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles キャプチャToolStripMenuItem.Click
'Bitmapオブジェクトを作成
Dim space As New Bitmap(WebBrowser1.Width, WebBrowser1.Height)

'画像をbmpに代入
Using bmp As Graphics = Graphics.FromImage(space)
Dim hDC As IntPtr = bmp.GetHdc()
PrintWindow(WebBrowser1.Handle, hDC, 0)
bmp.ReleaseHdc(hDC)
End Using

'保存
space.Save("C:\test\web.bmp")
space.Dispose()
End Sub
'ファイルの表示
Private Sub 表示ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 表示ToolStripMenuItem.Click
Process.Start("C:\test\web.bmp")
End Sub
End Class
「スクリーンショット」の回答画像2
    • good
    • 0

今、VBの環境が無いので断言できませんが


CopyFromScreenかCaptureControl でできないかな?
※.NETなら使えるのは確実だけどVBはうろ覚え
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!