2016-09-16 96 views
0

我必须枚举在我的机器上运行的所有进程,并通知是否会发生某些更改(例如:更改窗口可见性,打开新窗口,关闭窗口)。
枚举所有进程我可以使用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消息发送到两个窗口。我怎样才能抓住它?我能以另一种方式做到吗?检查窗口的可见性或状态更改

回答

0

对于谁对这个主题感兴趣,我发现要检查一个窗口是否被创建或销毁,我必须使用SetWinEventHook(),如example of its MSDN page。我只需检查event的值是否为EVENT_OBJECT_CREATEEVENT_OBJECT_DESTROY。对于其他事件,请检查event constants list