在不使用PInvoke的情况下,有没有办法在.net中找到打开的窗口?这与询问哪些应用程序正在内存中运行略有不同。例如,Firefox可能正在运行,但可能是多个窗口。基本上,我只想了解任务栏(以及alt选项卡
?)的相同信息。
此外,一旦我引用了一个窗口,有没有任何方法可以通过程序来给它聚焦?
有什么方法可以用托管代码做到这一点吗?
在不使用PInvoke的情况下,有没有办法在.net中找到打开的窗口?这与询问哪些应用程序正在内存中运行略有不同。例如,Firefox可能正在运行,但可能是多个窗口。基本上,我只想了解任务栏(以及alt选项卡
?)的相同信息。
此外,一旦我引用了一个窗口,有没有任何方法可以通过程序来给它聚焦?
有什么方法可以用托管代码做到这一点吗?
您可以查看新的.NET 3.5中的UI自动化内容。它应该掩盖大量PInovke的内容,并与web和WPF应用程序一起工作。
我还没有用过,所以我没有更具体的地方可以指引你,但它可能很合适。
看看这个LGPL项目。我知道它可以设置窗口的前景。否则aku是正确的。这很可能需要一些小电话。
http://mwinapi.sourceforge.net/
如果您需要关于pinvoke使用的信息:
恐怕没有PInvoke你是不可能做到的。要将焦点放在某个窗口上,您应该调用SetForegroundWindow函数,请参阅这篇文章了解详细信息。