我有一个顽皮的用户打电话SendMessage( HWND_BROADCAST, ... )
来,发现他们的应用程序自然而然地在那个时候停止了。虽然我会告诉他们停止这样做,但我也想知道系统中的哪个窗口没有响应。
通过使用EnumWindows()
,GetWindowThreadProcessId()
我能够知道没有响应的窗口的 HWND、进程 ID 和线程 ID。但是,该进程是一个加载许多 DLL 的进程,其中任何一个都可以托管该窗口。我需要找出它是哪一个。
理想情况下,我会使用GetWindowLong( GWL_HINSTANCE )
它来找出它是哪个模块,但GWL_HINSTANCE
在我的 Windows CE 5 平台上不可用。
有没有其他方法可以获取我需要的信息?
表达这个问题的其他方式:
- 如何找到哪个 HMODULE/HINSTANCE 拥有特定的线程 ID?
- 如何找到与特定 HWND 关联的 HMODULE/HINSTANCE?