掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.NETでアクティブウインドウのハンドルを取得するには? (ID:106659)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
おそらく、Picture1とPicture2の宣言が正しくないとか、スコープ外で宣言していてアクセスできないとかだと思いますけど、ちなみに、Picture○はどうやって宣言してますか? 第3者としては、それを聞かせてもらえれば答えられる確立が増えるのですが;^^) VB.NETはエラーメッセージを読めばどんなミスをしているかが結構わかる言語なので、意味が分からないエラーメッセージがでたりしてもそれをヒントに粘ったほうが良いかもしれないです。 画面のキャプチャを自分がやるとしたら、やっぱり、Loreleyさんと同じ方法をとると思います。 それで、サンプル作ってみました。 ---<画面をキャプチャして保存するサンプル>------- Imports System.Drawing '宣言 Private Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As System.IntPtr Private Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As System.IntPtr) As System.IntPtr Private Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As System.IntPtr, ByVal hdc As System.IntPtr) As Integer Private Declare Function BitBlt Lib "gdi32.dll" (ByVal hDestDC As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As IntPtr, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As IntPtr Private SWidth As Integer Private SHeight As Integer Private Hwnd As IntPtr Private SrcHDC As IntPtr Private Img As Bitmap Private G As Graphics '準備(Form_Loadあたりに) SWidth = Screen.PrimaryScreen.Bounds.Width SHeight = Screen.PrimaryScreen.Bounds.Height Hwnd = GetDesktopWindow() SrcHDC = GetDC(Hwnd) Img = New Bitmap(SWidth, SHeight) G = Graphics.FromImage(Img) '開放(Form_Closedあたりに) G.Dispose() Img.Dispose() ReleaseDC(Hwnd, SrcHDC) 'キャプチャ Dim DestHDC As IntPtr = G.GetHdc() BitBlt(DestHDC, 0, 0, SWidth, SHeight, SrcHDC, 0, 0, &HCC0020) G.ReleaseHdc(DestHDC) Img.Save("保存先のファイルパス", Imaging.ImageFormat.Bmp) -------------------------------------------------- 他にも効率の良いやり方があると思いますけど、日本太郎さんなりに工夫してみてください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.