在窗口关闭(或其拥有线程消失)时收到通知
Get notified when a Window closes (or it's owning thread disappears)
我有一个hwnd,我的进程不拥有它,我希望在它消失时得到通知,以便我的代码可以执行清理操作。最好的方法是什么?
如果要检测HWND所属的进程是否消失,可以通过GetWindowThreadProcessId()
获取HWND的进程ID,然后通过OpenProcess()
获取进程的HANDLE
,然后使用WaitForSingleObject()
或其他相关的等待函数。进程句柄在进程退出时发出信号。
要检测HWND何时消失,从GetWindowThreadProcessId()
获取HWND的线程ID,然后使用SetWindowsHookEx()
钩住该线程的消息队列,这样您就可以拦截属于该线程的所有HWND的WM_DESTROY
和WM_NCDESTROY
消息,寻找您感兴趣的特定HWND。请注意,当钩子连接另一个进程时,钩子必须在DLL中实现,所以当HWND被销毁时,你必须使用你选择的进程间通信机制来通知你的主应用程序。
相关文章:
- 将地址分配给本地指针后,公共对象的变量将消失
- 函数如何通知用户它基于函数原型抛出异常?
- 如何在ECS框架中更新组件数据和通知系统
- 当 I2C 值在C++中发生变化时收到通知
- 如何设计具有不同类型的通知和观察器的观察者模式?
- 应用投影矩阵后对象消失
- 当可输入框在窗口中处于活动状态时获得通知的任何方法
- 是否有必要获取锁并在不需要唤醒线程时通知condition_variable?
- 如何在点击通知时捕获用户的点击操作
- 添加自定义析构函数时,Move 构造函数在派生类中消失
- 在通知提升间处理条件变量时未按住锁会导致问题
- 通知条件变量后使用互斥锁
- 如何在不设置值的情况下通知 c++ 未来?
- 在 Linux 中使用 ioctl() 获取隐藏功能报告时,零字节消失
- 应用地址清理器后,免费无效指针消失
- 返回的指针属性中类实例上的矢量属性消失
- 使用 ISdigit 通知任何检测到的非法字符
- Qt:如何通知对象已建立涉及它的信号槽连接
- 提升进程间named_condition_any不通知
- 在窗口关闭(或其拥有线程消失)时收到通知