回答
这样做可能很危险,但解决方案是处理WM_ACTIVATE消息并检查wParam是否为WA_INACTIVE。这意味着该窗口已被禁用。发生这种情况时,您可以重新激活它。
为了对另一个进程的窗口执行此操作,您需要安装一个带有SetWindowsHookEx
的消息钩子。
但是,另一个应用程序可能会做同样的事情,使对方处于无限循环的激活/停用状态。
这也是绝对不应该由个人计算机上运行的软件来完成的。
更重要的是,在改变焦点的事件中,你不应该改变焦点,这在Windows中是一个硬性规则。 'WM_ACTIVATE'仅仅是一个窗口正在改变激活状态的通知:**它不要求许可**。你在这件事上没有任何发言权,而且假设你只是在寻求麻烦。 – 2011-02-28 13:46:56
您可以捕获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);
}
这个问题在不同的过程中需要一个窗口。您的代码只能用于同一过程中的窗口(与代码相同)。 – Steve 2011-02-28 13:49:39
你确定这可以吗?另一个应用程序同时收到一个“WM_ACTIVATEAPP”消息。此消息不会要求停用应用程序的权限。 – 2011-02-28 13:49:48
- 1. 防止窗口被捕获
- 2. 防止窗口...
- 3. 如何防止用户拖动窗口?
- 4. 如何防止用户更改窗口
- 5. 如何防止浏览器窗口中的设计被切断?
- 6. 如何防止一个元素被窗口大小调低?
- 7. 如何防止窗口被tkinter调整大小?
- 8. 如何防止图像缩放窗口
- 9. ProgressDialog:如何防止泄漏窗口
- 10. 如何防止窗口最小化?
- 11. 通知窗口 - 防止窗口聚焦
- 12. 如何禁止'打开'窗口
- 13. 如何防止父窗口关闭之前关闭子窗口
- 14. Tkinter窗口,以防止PermissionError
- 15. 防止重画窗口
- 16. TWebBrowser - 防止新窗口
- 17. 防止子窗口调整
- 18. 防止关注python窗口
- 19. Win32防止窗口“捕捉”
- 20. 防止窗口打开
- 21. jquery防止窗口关闭
- 22. 如何禁用wpf窗口?
- 23. 如何禁用窗口?
- 24. 禁止psexec命令窗口?
- 25. 如何防止当窗口关闭时tmux窗口启动的进程被终止?
- 26. 如何防止我的IP地址被Ebay禁止?
- 27. 防止窗体进入窗口模式
- 28. 防止用jQuery关闭窗口?
- 29. WPF防止使用所有者窗口
- 30. 当通过Gtk#窗口调用DeleteEvent时,如何防止窗口关闭?
来回答这些问题的关键是:如果两个应用程序试图做到这一点? – 2011-02-28 13:23:59
@Sasha:+1。此外,“窗户处于不同的过程”听起来像是对基本问题的有趣转折。 – 2011-02-28 13:28:25
“阻止不同进程的窗口被停用”听起来像是你想要做的工作,而不是问题 - 如果你能告诉我们底层问题是什么,你可能会得到更好的建议。 – 2011-02-28 13:43:05