获取当前窗口的列表,并将其中一个窗口集中在.Net中

时间:2008-08-30 09:46:07

标签: .net windows

不使用PInvoke,在.net中是否有办法找出哪些窗口是打开的?这与询问内存中运行的应用程序略有不同。例如,Firefox可能正在运行,但可能不止一个窗口。基本上,我只想知道任务栏(和alt-tab?)所用的相同信息。

另外,一旦我有一个窗口的引用,有没有办法以编程方式给它一个焦点?

有没有办法用托管代码执行此操作?

3 个答案:

答案 0 :(得分:1)

您可以查看.NET 3.5中的新UI Automation内容。它应该掩盖了很多PInovke的东西,并与Web和WPF应用程序一起工作。

我还没有使用它,所以我没有更具体的地方指导你,但它可能符合要求。

答案 1 :(得分:1)

查看这个LGPL项目。我知道它可以为窗口设置前景。否则aku是正确的。它最需要一些pinvoke电话。

http://mwinapi.sourceforge.net/

如果您需要有关pinvoke使用的信息:

http://www.pinvoke.net/

答案 2 :(得分:0)

如果没有PInvoke,我担心你无法做到这一点。要将焦点放在某个窗口上,您应该调用SetForegroundWindow函数,有关详细信息,请参阅this文章。