2

私は C# でアプリケーションを開発しており、ウィンドウ ハンドルしか知らないウィンドウのスクリーン ショット イメージを取得する方法を知りたいと考えています。私が達成しようとしている機能は、ウィンドウ ハンドルしか知らない場合に、任意のウィンドウのスクリーン ショット (アプリケーション全体またはアプリケーション内のコントロール) をコピーできるようにすることです。

例: 電卓アプリケーションと Spy++ を実行しています。Spy++ のウィンドウ検索機能を使用して電卓の別のボタンにマウスを合わせると、別のウィンドウ ハンドルが表示されます。電卓の「9」ボタンの上にマウスを置いたとしましょう。ウィンドウハンドルがわかったので、「9」ボタンの画像のみを取得したいと思います。完全なアプリケーションのウィンドウ ハンドルがある場合、そのアプリケーションのスクリーン ショットのみを取得できるようにしたいと考えています。Alt+PrintScr に似ています。

4

1 に答える 1

1

GetWindowRectを使用する必要があります。

この例に示すように。

次に、この SO 投稿c# Take a screenshot of specific area に示すようにGraphics.CopyFromScreenを使用できます。

すべてをまとめると、必要なウィンドウの四角形を取得するために HWnd を受け入れる GetWindowRect を呼び出します。次に、これらの rect 値を CopyFromScreen で使用して、画像をキャプチャします。

于 2014-03-20T17:33:12.457 に答える