2015-06-12 44 views
0

我想識別使用部分NameProperty的Windows靜態文本控件。下面是我的代碼:在Windows自動化中使用部分NameProperty找到一個Windows控件

// Get a reference to the window 
AutomationElement epoWindow = AutomationElement.RootElement.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "MsiDialog")); 
// Get a reference to the control 
AutomationElement epoControl = epoWindow.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, controlText)); 

我現在需要完整的controlText字符串這個工作,但我想,以搜索字符串的一部分,並返回找到的任何控制。 我該怎麼做? 謝謝, 約翰

回答

0

你可以對孩子訪問集合與prefefined TrueCondition,像這樣:

foreach(AutomationElement child in epoWindow.FindAll(TreeScope.Subtree, Condition.TrueCondition)) 
    { 
     if (child.Current.Name.Contains("whatever")) 
     { 
      // do something 
     } 
    } 

PS:你要慎選TreeScope,如果你不想殺死性能你的應用程序(如果它有一個大的孩子等級)或無限期地等待...

+0

謝謝西蒙,這很好! – bearaman

相關問題