0

Is there any way to prevent a window from being deactivated? The window is in a different process then mine.

This is for Windows.

4

2 回答 2

4

这样做可能很危险,但解决方案是处理 WM_ACTIVATE 消息并检查 wParam 是否为 WA_INACTIVE。这意味着该窗口已被停用。发生这种情况时,您可以重新激活它。

为了对另一个进程的窗口执行此操作,您需要安装一个带有SetWindowsHookEx.

但是,另一个应用程序可能会做同样的事情,将彼此置于激活/停用的无限循环中。

这也是在个人计算机上运行的软件永远不应该做的事情。

于 2011-02-28T13:31:02.887 回答
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);
}
于 2011-02-28T13:34:48.267 回答