【发布时间】:2025-12-03 12:30:01
【问题描述】:
我正在开发一个应用程序,用于检查 Windows 用户计算机上打开的窗口(就像任务管理器一样)
我使用 EnumWindows 列出所有活动窗口并且它可以工作,现在我想创建一个函数,当窗口关闭时在控制台上写入消息。是否有可能,或者我必须在单独的线程中检查 WindowHandler 数组,如何检查它们的状态?
感谢您的帮助。
【问题讨论】:
-
如果您有访问权限,一种方法是使用全局 CBT Hook proc。进一步阅读msdn.microsoft.com/en-us/library/windows/desktop/… 见 HCBT_DESTROYWND
-
所以当用户在 Windows 上按下 X 时,我的程序可以通过这个 CBT 挂钩“收听”?
-
从这里开始:msdn.microsoft.com/en-us/library/windows/desktop/… 并确保您阅读了调用回调的线程。
-
您需要注册WinEvents并处理
EVENT_OBJECT_DESTROY事件。您需要在运行EnumWindows循环之前注册。否则你可能会错过窗口破坏。