0

閉じたときに彼の位置を保存しない迷惑なプログラムがあります。ウィンドウを開いてウィンドウを別の位置に移動する小さなコンソールプログラムを作成しました。プログラムを閉じたときに位置を保存したいのですが、ウィンドウが破壊される前に位置を保存できるように、終了メッセージを傍受するにはどうすればよいですか?

4

1 に答える 1

0

アプリを起動した後にウィンドウを配置できるので、明らかにウィンドウのHWND. ただし、HWNDプロセスの境界を越えて a をサブクラス化することはできないため、アプリでウィンドウを直接フックすることはできません。次のいずれかを行う必要があります。

  1. 起動されたプロセスにコードをリモートで挿入して、それ自体のプロセスのコンテキスト内からターゲット ウィンドウをサブクラス化すると、サブクラスはウィンドウが受信するすべてのメッセージに直接アクセスできます。

  2. を使用して DLL にグローバル メッセージ フックを実装SetWindowsHookEx()し、ターゲットがHWND受信するすべてのメッセージを調べます。

どちらの方法でも、サブクラス/フックは、WM_CLLOSEおよび/またはWM_DESTROYメッセージがターゲット ウィンドウに配信されていることを検出すると、選択したプロセス間通信 (IPC) メカニズム (名前付きパイプ、名前付きイベント、ソケット、メールスロット、ウィンドウ メッセージなど。

于 2015-03-29T03:24:14.767 に答える