我需要编写应用程序A,它将WM_ACTIVATE
消息拦截到应用程序B的窗口,以防止B成为最顶层的应用程序。
是否有可能没有 DLL注入(在该消息上添加一个钩子,通过一系列WinAPI调用处理并“中和”它?)
答案 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?
然后,当不需要的窗口到达前面时,您可以将其发送到后台。