1

user32.dllを利用してウィンドウを列挙し、リストに追加する相互運用コードを作成しました。WindowDataは、ウィンドウのhWnd、title、Position、Size、実行可能パス、アプリアイコンなどを格納するローカルのINotifyPropertyChangedクラスです。

ウィンドウのタイトル、位置、サイズなどの変更に効果的に「バインド」できる方法はありますか?DispatcherTimerを使用して情報を毎秒更新する必要はありません。単純なイベントハンドラーやコールバックなどを使用できるのであれば、それをお勧めします。

誰かアイデアはありますか?

4

1 に答える 1

0

ポーリングせずにすべてのウィンドウのウィンドウ データを効率的に追跡するには、ウィンドウの作成または削除の通知を登録してから、すべてのメッセージ キューをフックし、追跡しようとしているウィンドウ データに影響するメッセージを処理する必要があります。残念ながら、これは非常に重要な作業です。有利なスタートが必要な場合は、Spy++ がどのように実装されているかなどを確認できます。ここに記事があります:

それを見た後、時々ポーリングすることを再検討し、変更されたデータのみを慎重に更新するObservableCollection.

于 2011-01-09T00:28:00.910 に答える