我有一个hwnd,我的进程不拥有,我希望在它消失时得到通知,以便我的代码可以执行清理操作。最好的方法是什么?
答案 0 :(得分:3)
要检测HWND的拥有过程何时消失,您可以从GetWindowThreadProcessId()
获取HWND的进程ID,然后使用HANDLE
获取OpenProcess()
进程,然后使用{{1或其他相关的等待函数。进程退出时会发出进程句柄信号。
要检测HWND何时消失,从WaitForSingleObject()
获取HWND的线程ID,然后使用GetWindowThreadProcessId()
挂钩该线程的消息队列,以便拦截SetWindowsHookEx()
和{{ 1}}属于该线程的所有HWND的消息,寻找您感兴趣的特定HWND。请注意,当挂钩另一个进程时,必须在DLL中实现钩子,因此您必须使用进程间通信机制当HWND被销毁时,您选择通知主应用程序。