わんぱくなユーザーが電話をかけてSendMessage( HWND_BROADCAST, ... )
きて、当然その時点でアプリケーションが停止することに気づきました。それをやめるように言いますが、システムのどのウィンドウが応答していないかも知りたいです。
を使用するEnumWindows()
とGetWindowThreadProcessId()
、応答していないウィンドウの HWND、プロセス ID、およびスレッド ID を知ることができます。ただし、プロセスは多くの DLL をロードするプロセスであり、それらのいずれかがそのウィンドウをホストしている可能性があります。私はそれがどれであるかを見つける必要があります。
理想的にGetWindowLong( GWL_HINSTANCE )
は、それがどのモジュールであるかを調べるために使用しますが、GWL_HINSTANCE
私の Windows CE 5 プラットフォームでは使用できません。
必要な情報を取得する他の方法はありますか?
この質問の他の言い方:
- 特定のスレッド ID を所有する HMODULE/HINSTANCE を見つけるにはどうすればよいですか?
- どの HMODULE/HINSTANCE が特定の HWND に関連付けられているかを調べるにはどうすればよいですか?