2009-04-26 40 views
3

我有一個將主要運行在後臺的應用程序。我希望它處理使應用從前臺應用程序,不管它是什麼偷焦點某些系統事件。但是UIElement.Focus()似乎只在WPF應用程序中設置焦點。也就是說,如果WPF應用程序已經擁有焦點作爲一個整體,然後集中()將焦點設置到合適的控制。但我需要從另一個應用程序竊取重點並將其放到我的應用程序中。我怎樣才能做到這一點?設置系統專注於我的應用程序

我做想要一個系統模態對話框。也就是說,在窗口搶斷重點,應該可以讓用戶立即切換到另一個應用程序沒有駁回我的應用程序的窗口。

該應用可能已經在一個恢復,最小化,或甚至「最小化到托盤」時,它需要竊取系統聚焦狀態。因此,假設它是最小化和竊取焦點,而恢復窗口是不可接受的。

+0

諷刺的是十年後,我想知道爲什麼在世界上,我想做到這一點。我討厭這樣做的應用程序。 – 2013-01-09 04:55:13

回答

6

如果你不介意做SOM P /所調用的SetForegroundWindow功能應該能夠幫助你:
http://pinvoke.net/default.aspx/user32/SetForegroundWindow.html

+0

它也值得閱讀SetForegroundWindow文檔中的註釋:http://msdn.microsoft.com/en-us/library/ms633539(VS.85).aspx在某些情況下,Windows會阻止背景窗口強制自己置於頂層其他窗口。 – 2009-04-26 22:31:36

相關問題