有没有办法防止窗口被停用?窗口处于不同的过程,然后是我的。
这适用于Windows。
答案 0 :(得分:3)
这样做可能很危险,但解决方案是处理WM_ACTIVATE消息并检查wParam是否为WA_INACTIVE。这意味着窗口已停用。发生这种情况时,您可以重新激活它。
为了在另一个进程的窗口中执行此操作,您需要使用SetWindowsHookEx
安装消息挂钩。
然而,另一个应用程序可能会做同样的事情,将彼此置于激活/停用的无限循环中。
这也是本来不应该在个人计算机上运行的软件。
答案 1 :(得分:0)
你可以像这样陷阱WM_ACTIVATEAPP
:
protected override void WndProc(ref Message m) {
// Trap WM_ACTIVATEAPP
if ((m.Msg == 0x1c) && (m.WParam == IntPtr.Zero))
{
// If WM_ACTIVATEAPP and WParam is deactivated, return
return;
}
base.WndProc(ref m);
}