回答
這樣做可能很危險,但解決方案是處理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