检查 window 的可见性或状态变化

Check visibility or status change of a window

我必须枚举我机器上的所有进程 运行 并通知是否会发生某些更改(例如:更改 windows 的可见性、打开一个新的 window、关闭window).
要枚举所有进程,我可以使用 MSDN 提供的这个函数:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682623(v=vs.85).aspx
我认为我需要保存 运行 个进程的列表并检查(如何不轮询?)如果它改变.我可以在不保存当前 运行 个进程的情况下执行此操作吗?

对于此处可见性的变化 https://msdn.microsoft.com/it-it/library/windows/desktop/ms646274(v=vs.85).aspx,我发现 VM_ACTIVATE 消息被发送到两个 windows。我怎样才能抓住它?我可以换一种方式吗?

对于对此主题感兴趣的人,我发现要检查 window 是否已创建或销毁,我必须使用 SetWinEventHook(),就像在 example of its MSDN page. I simply check if event value is EVENT_OBJECT_CREATE or EVENT_OBJECT_DESTROY. For other events, check the event constants list 中一样。