ホームページ > バックエンド開発 > C++ > C# で特定のアプリケーションのスクリーンショットをキャプチャするにはどうすればよいですか?

C# で特定のアプリケーションのスクリーンショットをキャプチャするにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-17 12:11:10
オリジナル
515 人が閲覧しました

How Can I Capture a Screenshot of a Specific Application in C#?

C# での個々のアプリケーションのスクリーンショットの取得

Graphics.CopyFromScreen() を使用して全画面スクリーンショットをキャプチャするのは簡単ですが、特定のアプリケーションをキャプチャするには、より高度なテクニックが必要です。 最適なソリューションは、PrintWindow Win32 API 関数を活用します。この機能を使用すると、ウィンドウの可視性や他のウィンドウの背後に隠れているかどうかに関係なく、ウィンドウの画像をキャプチャできます。

プロセスの内訳は次のとおりです:

  1. ターゲット ウィンドウを特定します。 GetWindowRect を使用して、キャプチャするアプリケーション ウィンドウのハンドル (HWND) を取得します。
  2. Use PrintWindow: PrintWindow 関数を呼び出し、ウィンドウ ハンドルと Windows デバイス コンテキスト (HDC) へのハンドルを提供します。この関数はウィンドウのビットマップをキャプチャします。
  3. ビットマップを取得します: Bitmap オブジェクトを作成し、Graphics を使用してその Graphics.FromImage() コンテキストを取得します。 GetHdc() を使用してビットマップの HDC を取得し、それを PrintWindow に渡します。
  4. クリーンアップ: リソースのリークを避けるために、HDC を解放し、Graphics オブジェクトを破棄します。

この方法を使用すると、ターゲット アプリケーションが部分的または完全に隠れている場合でも、正確なスクリーンショットを確実にキャプチャできます。

以上がC# で特定のアプリケーションのスクリーンショットをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート