私は Windows 用の一種の画面記録アプリを作成しており、画面/アクティブ ウィンドウのいつ、どの領域が変更されたかを知りたいと考えています。
画面の変更の通知を受け取るためにフックできる Windows API はありますか?
または、このようなものを手動で書く必要がありますか? :(
私は常に、リモート デスクトップが何らかの API を使用して画面のどの領域が変更されたかを検出し、それらの画像のみを送り返していると考えていました。これはまさに私が必要とする動作です。
私は Windows 用の一種の画面記録アプリを作成しており、画面/アクティブ ウィンドウのいつ、どの領域が変更されたかを知りたいと考えています。
画面の変更の通知を受け取るためにフックできる Windows API はありますか?
または、このようなものを手動で書く必要がありますか? :(
私は常に、リモート デスクトップが何らかの API を使用して画面のどの領域が変更されたかを検出し、それらの画像のみを送り返していると考えていました。これはまさに私が必要とする動作です。
ここでいくつかの手がかりが見つかると思いますScreen Event Recorder DLL/Application、ここではAbout Hooks、および ここでは Win32 Journal Hooks を使用したマクロ レコーダー/プレーヤーの作成
Windows には、画面のどの部分が変更されたかを通知できる API はないと思います。
考えられる 1 つの方法は、UltraVNC が使用するようなビデオ ミラー ドライバーを使用することです。
画面の変化を検出するには、かなりの作業が必要になるようです。たとえば、 tech-archive.netでのこの投稿。これにより、参照画面をRAMにコピーしてから、別の画面を取得して2つを比較できます。どのような変更が意味のあるものであるかを定義するのはあなた次第です。これは、デスクトップキャプチャに関するこの記事と同様の資料です。
リモートデスクトップはGDIをコマンドのようにストリーミングすると思います。そもそもどうやって捕まえるのかわからない。
助けてくれてありがとう。変更された四角形を驚くほど速く計算するように見える画像差分クラスを作成することになりました。私はそれがどのように機能するかの要点をここに投稿しました。
現時点ではタイマーでやっているだけですが、入力イベントの後にも行う予定です。
リンクをありがとう山盛りブースト - 私はちょうどこのスレッドをもう一度見ただけなので、すぐにそれらをチェックします.