关于winapi:是否可以在不使用DLL注入的情况下阻止应用程序被激活(置于最前面)?

Is it possible to prevent an application from being activated (brought to front) without using DLL injection?

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

是否可以在没有DLL注入的情况下做到这一点(在该消息上添加钩子,使用一系列WinAPI调用处理并"中和"它)?


我想这就是你的追求:

LockSetForegroundWindow

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

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

别忘了解锁:)

编辑:

按此处所述尝试SetWinEventHook:

活动窗口上的Windows系统事件是否已更改?

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