Win API:挂钩每个窗口显示或进程执行

时间:2009-12-22 21:00:32

标签: winapi

我们计划在应用内部构建某种单点登录功能。

我很清楚,我必须使用Windows API来实现从遗留应用程序控件的读取和写入,但就我搜索和测试而言,这不是最难的部分。

然而,有一点我直到现在才弄清楚如何继续:每次在UI中弹出一个新窗口时,如何“挂钩”系统以进行通知?例如:当我启动计算器时,或者在calc中,关闭窗口打开时。

有没有办法接收这种通知?如果有,怎么样?如果不是,是否有任何解决方法可以达到相同的效果?

提前谢谢你,

菲利普

2 个答案:

答案 0 :(得分:2)

您需要一个Windows系统挂钩,特别是WH_CBT挂钩,观看HCBT_CREATEWND事件。这东西有点多毛,但可能。

开始here

答案 1 :(得分:0)

SetWinEventHookEVENT_OBJECT_SHOW事件类型一起使用。最后致电UnhookWinEvent

类似的例子:https://stackoverflow.com/a/10280800/991267