我正在尝试使用.NET UIAutomation或White框架查找所有桌面窗口。
我试过了 :

1.)

            AutomationElement rootElement = AutomationElement.RootElement;
            var winCollection = rootElement.FindAll(TreeScope.Subtree, Condition.TrueCondition);

2.)
            Desktop.Instance.Windows();

两者都抛出ArgumentException。
请让我知道是否还有其他方法可以执行此操作...

更新/应答:Desktop.Instance.Windows();除在使用VS2010调试代码时会引发异常外,其他方法均能正常工作。

最佳答案

如果要访问桌面的直接子元素,则可以使用TreeScope.Children::

    AutomationElement rootElement = AutomationElement.RootElement;
    var winCollection = rootElement.FindAll(TreeScope.Children, Condition.TrueCondition);

    foreach (AutomationElement element in winCollection)
        Console.WriteLine(element.Current.Name);

关于white-framework - 使用UIAutomation .NET在桌面上查找所有窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10191265/

10-12 17:32