Is there any way to prevent a window from being deactivated? The window is in a different process then mine.
This is for Windows.
Is there any way to prevent a window from being deactivated? The window is in a different process then mine.
This is for Windows.
这样做可能很危险,但解决方案是处理 WM_ACTIVATE 消息并检查 wParam 是否为 WA_INACTIVE。这意味着该窗口已被停用。发生这种情况时,您可以重新激活它。
为了对另一个进程的窗口执行此操作,您需要安装一个带有SetWindowsHookEx
.
但是,另一个应用程序可能会做同样的事情,将彼此置于激活/停用的无限循环中。
这也是在个人计算机上运行的软件永远不应该做的事情。
您可以像这样捕获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);
}