在.Net中获取当前窗口的列表,并给其中一个焦点
时间:2020-03-05 18:45:23 来源:igfitidea点击:
在不诉诸PInvoke的情况下,.net中是否有办法找出打开了哪些窗口?这与询问内存中正在运行哪些应用程序略有不同。例如,Firefox可能正在运行,但可能不止一个窗口。基本上,我只想知道与任务栏(和" alt-tab"?)相同的信息。
另外,一旦我引用了一个窗口,是否有任何方法以编程方式使其聚焦?
有什么办法可以用托管代码做到这一点?
解决方案
回答
恐怕没有PInvoke,我们将无法做到。要使焦点集中在某些窗口上,我们应该调用SetForegroundWindow函数,有关详细信息,请参见本文。
回答
我们可以在.NET 3.5中检出新的UI自动化内容。它应该掩盖了很多PInovke的东西,并且可以与Web和WPF应用程序一起使用。
我还没有使用过它,所以我没有更具体的位置来指导我们,但它可能适合我们。
回答
签出此LGPL项目。我知道它可以为窗口设置前景。否则,aku是正确的。它极有可能需要拨打一些电话。
http://mwinapi.sourceforge.net/
如果我们需要有关pinvoke的信息,请使用:
http://www.pinvoke.net/