画面の比較


Chaos  2005-04-12 23:34:23  No: 89327

ある一定の間隔で他のプログラムのウィンドウ内が変化したかを監視したいと考えています。
(例えば、空欄だったのがメッセージが表示される)
監視間隔としては1分〜10分程度で、ウィンドウ名(タイトル)は固定で、常に表示したままの状態です。
イメージ的には、一つ前の時間のウィンドウの画面コピーを取り、比較して違っていた場合処理をするという感じです。

なにか良い方法はありませんでしょうか?
よろしくお願いします。


さるべーじ  2005-04-13 03:04:54  No: 89328

とりあえず発想的にはおっけーだと思います。

で、どこでつまづいているんでしょう?


みい  2005-04-13 03:39:08  No: 89329

普通に画面のハードコピーの予定かな?
それだと対象画面が最小化されてたり他の画面がかぶっていたり
に注意が必要と思います。
あとはタイトルバー部分はアクティブ、非アクティブで色が変わったり
するから比較部分からタイトルバーは外すとか。
意味取り違えてたらごめんなさい(あんまり頭が回ってない)。


Chaos  2005-04-13 18:32:29  No: 89330

大事な部分を書き忘れていたみたいです。

分からない部分としては、
ビットマップの比較方法です。
単純にクリップボードにあるものを一時格納し
次に取ったクリップボードの画面とを比較すればいいのでしょうか?
それとも何かに置き換えて行わなければいけないのでしょうか?


medaka  2005-04-13 20:11:40  No: 89331

クリップボードからmemorystreamに読み込んで
バイナリで比較するとか?


かえで  2005-04-13 22:38:36  No: 89332

クリップボードを使用しなくても、APIのGetDibits関数でバイト配列
に画像データを取得し、前回取得したものとを比較すればいいのではないでしょうか。


ねろ  2005-04-13 23:11:34  No: 89333

いちばん簡単なのは、クリップボードの内容をファイルに吐き出させ、
DosのFile Compare(fc)コマンドで比較する方法かな。
殆どコードを書く必要が無い。


Chaos  2005-04-15 01:50:13  No: 89334

色々アドバイスありがとうございます。
ひとつずつやってみます。


ねろ  2005-04-15 02:25:20  No: 89335

タスクトレイの中の時計を非表示にすることを忘れないで下さい。
ブロードキャストが流れているなら、ネットワーク表示も。。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加