是否可以在不使用DLL注入的情况下阻止应用程序被激活(带到前面)?

时间:2013-05-14 12:49:37

标签: winapi dll-injection

我需要编写应用程序A,它将WM_ACTIVATE消息拦截到应用程序B的窗口,以防止B成为最顶层的应用程序。

是否有可能没有 DLL注入(在该消息上添加一个钩子,通过一系列WinAPI调用处理并“中和”它?)

1 个答案:

答案 0 :(得分:2)

我认为这就是你所追求的:

LockSetForegroundWindow

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633532(v=vs.85).aspx

备注 如果用户按下ALT键或采取某些操作导致系统自身更改前景窗口(例如,单击背景窗口),系统将自动启用对SetForegroundWindow的调用。 提供此功能,以便应用程序可以阻止其他应用程序进行前台更改,从而中断其与用户的交互。

不要忘记解锁:)

编辑:

按照此处所述尝试SetWinEventHook:

Is there Windows system event on active window changed?

然后,当不需要的窗口到达前面时,您可以将其发送到后台。