掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.NETでアクティブウインドウのハンドルを取得するには? (ID:106660)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Y2さん サンプルを作っていただいて本当にありがとうございました。 そのサンプルなのですが、エラーが出てしまいました。 >Private SWidth As Integer >Private SHeight As Integer >Private Hwnd As IntPtr >Private SrcHDC As IntPtr >Private Img As Bitmap >Private G As Graphics Privateではエラーが出ましたがDimだとOKでした。 >'キャプチャ >Dim DestHDC As IntPtr = G.GetHdc() 「DestHDC As IntPtr = G.GetHdc()」の式については、青い波線は出ないのですが実行してボタンを押した後に、 「'System.ArgumentException' のハンドルされていない例外がsystem.drawing.dll で発生しました」 「追加情報 : 使用されたパラメータが無効です。」 と表示され、「DestHDC As IntPtr = G.GetHdc()」の部分が、緑色になってしまいます。 今日調べたり、試行錯誤したりして粘ってみたのですが、どうにもなりません。 一応、コピーを載せておきます。(長いので一部省略)間違いがあれば御指摘願います。 --------------------------------------------------------------------- Imports System.Drawing Public Class Form1 Inherits System.Windows.Forms.Form Public Declare Function GetDC Lib "USE...続く Private Declare Function GetDesktopWin...続く Private Declare Function GetDC Lib...続く Private Declare Function ReleaseDC Li...続く Private Declare Function BitBlt Lib "...続く Windowsフォームデザイナで生成されたコード '---<画面をキャプチャして保存する>--- Private Sub Button1_Click(ByVal sender As System.Ob...続く '宣言 Dim SWidth As Integer Dim SHeight As Integer Dim Hwnd As IntPtr Dim SrcHDC As IntPtr Dim Img As Bitmap Dim 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) End Sub End Class ---------------------------------------------------------------------
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.