2009-04-26 48 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

相关问题