5

画面をビデオとしてキャプチャする必要があります。そのために Expression Encoder 4 を使用しましたが、アプリケーションでも 1 つのウィンドウをキャプチャする必要がありますが、それを行う方法が見つかりません。EE4 で動的に変更しようとしましたCaptureRectangle私のScreenCaptureJobの 、しかしそれは可能ではないようです。だから私の質問は、できればC#またはおそらくC ++を使用して、この「単一ウィンドウキャプチャ」を行う方法を知っていますか?

4

1 に答える 1

2

関心のあるウィンドウのウィンドウ ハンドルを取得し、タイマーを設定し、各タイマー ティックでそのウィンドウの内容をキャプチャできます。そうすることは自明ではありませんが、確かに可能です。私は何年も前に C でそれを行いましたが、そのコードはとうの昔になくなっています。

画面の長方形の領域をキャプチャしたいだけであれば、問題はより簡単です。ウィンドウ ハンドルを取得し、そのサイズと位置を照会して、画面からその領域をコピーできます。C または C++ では、デスクトップ DC を取得し、そこからビットをコピーします。C# ではBitmap、ウィンドウのサイズの を作成し、呼び出して画像Graphics.FromImageのオブジェクトを取得し、次にCopyFromScreenを呼び出してウィンドウの内容を取得できます。欠点は、問題のウィンドウが何も覆われていない場合にのみ機能することです。ウィンドウの一部が何かで覆われている場合は、それをキャプチャします。Graphics

いずれにせよ、ビデオに結合する必要がある画像のストリームになります。それを行う多くのライブラリがあります。C# ソリューションの場合、ストリーミングされた画像からビデオを作成する c# を調べることから始めることができます。C++ にも同様のライブラリがあると思います。それを行うコマンドラインツールもいくつかありますが、私の経験では満足のいくものではありませんでした.

于 2012-11-06T04:42:59.460 に答える