自动化 - 无法正确捕获WindowsFormsApplication的TreeItem

时间:2016-02-26 07:13:01

标签: c# automation microsoft-ui-automation

[自动化]无法捕获在WinServer2012 R2上运行的目标框架.Net 4.5.2的WindowsFormsApplication的TreeItems

我创建了一个示例Windows应用程序项目,其中包含一个带有两个节点的TreeView。两个节点中的每一个都具有子节点。 像

这样的东西
-Node0

...Node2

...Node3

-Node1

...Node4

...Node5

...Node6

使用以下代码,似乎无法正确捕获树项目,导致nodes.Count == 1。我期待Count == 2(Node0和Node1)

using System.Windows.Automation;

namespace Tester
{
   public class Class1
   {
      public void Test()
      {
         var desktop = AutomationElement.RootElement;

         var forms = desktop.FindAll(TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, "MyForm"));

         var trees = forms[0].FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, "treeView1"));

         var nodes = trees[0].FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.TreeItem));

      }
   }
}

注意: 如果只捕获了1个实例,我一直在使用FindAll()重新检查。

添加参考:

  • UIAutomationClient(文件版本:4.0.30319.34211建立者: FX452RTMGDR)
  • UIAutomationTypes(文件版本:4.0.30319.34211已建立 作者:FX452RTMGDR)

一些扣除。

1

  
      
  • 服务器操作系统:Win2008ServerR2
  •   
  • WinFormsApp目标框架:.Net 4.0
  •   
  • 结果:确定
  •   

2

  
      
  • 服务器操作系统:Win2008ServerR2
  •   
  • WinFormsApp目标框架:.Net 4.5.2
  •   
  • 结果:确定
  •   

3

  
      
  • 服务器操作系统:Win2012ServerR2
  •   
  • WinFormsApp目标框架:.Net 4.0
  •   
  • 结果:确定
  •   

4

  
      
  • 服务器操作系统:Win2012ServerR2
  •   
  • WinFormsApp目标框架:.Net 4.5.2
  •   
  • 结果:不行 - nodes.Count == 1
  •   

5

  
      
  • 服务器操作系统:Win2012ServerR2
  •   
  • WPF目标框架:.Net 4.5.2
  •   
  • 结果:确定
  •   

思想?

0 个答案:

没有答案