C# での個々のアプリケーションのスクリーンショットの取得
Graphics.CopyFromScreen()
を使用して全画面スクリーンショットをキャプチャするのは簡単ですが、特定のアプリケーションをキャプチャするには、より高度なテクニックが必要です。 最適なソリューションは、PrintWindow
Win32 API 関数を活用します。この機能を使用すると、ウィンドウの可視性や他のウィンドウの背後に隠れているかどうかに関係なく、ウィンドウの画像をキャプチャできます。
プロセスの内訳は次のとおりです:
GetWindowRect
を使用して、キャプチャするアプリケーション ウィンドウのハンドル (HWND) を取得します。PrintWindow
: PrintWindow
関数を呼び出し、ウィンドウ ハンドルと Windows デバイス コンテキスト (HDC) へのハンドルを提供します。この関数はウィンドウのビットマップをキャプチャします。Bitmap
オブジェクトを作成し、Graphics
を使用してその Graphics.FromImage()
コンテキストを取得します。 GetHdc()
を使用してビットマップの HDC を取得し、それを PrintWindow
に渡します。Graphics
オブジェクトを破棄します。この方法を使用すると、ターゲット アプリケーションが部分的または完全に隠れている場合でも、正確なスクリーンショットを確実にキャプチャできます。
以上がC# で特定のアプリケーションのスクリーンショットをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。