예제 #1
0
 public static void SetSelected(this IWin32MarkerExtension uiaRadioButton, bool bSelect)
 {
     if (bSelect)
     {
         uiaRadioButton.GetSelectionItemPattern().Select();
     }
     else
     {
         //uiaRadioButton.GetSelectionItemPattern().RemoveFromSelection();
     }
 }
예제 #2
0
        public static T GetValue <T>(this IWin32MarkerExtension uiaAutomation, AutomationProperty prop, bool ignoreDefaultValue = true)
        {
            var result = Activator.CreateInstance(typeof(T));

            var obj = uiaAutomation.AutomationElement.GetCurrentPropertyValue(prop, ignoreDefaultValue);

            if (obj != AutomationElement.NotSupported)
            {
                result = (T)obj;
            }
            return((T)result);
        }
예제 #3
0
        public static string GetSelectedItem(this IWin32MarkerExtension uiaListBox)
        {
            var list         = new List <string>();
            var itemToSelect = uiaListBox.AutomationElement.FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem));

            if (itemToSelect != null)
            {
                var selectItemPattern = (SelectionItemPattern)itemToSelect.GetCurrentPattern(SelectionItemPattern.Pattern);
                var selectionPattern  = selectItemPattern.Current.SelectionContainer.GetCurrentPattern(SelectionPattern.Pattern) as SelectionPattern;
                list.AddRange(selectionPattern.Current.GetSelection().Select(ae => ae.Current.Name));
            }
            return(list.Count == 0 ? string.Empty : list[0]);
        }
예제 #4
0
        public static string[] GetItems(this IWin32MarkerExtension uiaCombo)
        {
            AutomationElementCollection comboboxItems = uiaCombo.AutomationElement.FindAll(TreeScope.Subtree,
                                                                                           new PropertyCondition(
                                                                                               AutomationElement.
                                                                                               ControlTypeProperty,
                                                                                               ControlType.ListItem));
            var list = new List <string>();

            for (int i = 0; i < comboboxItems.Count; i++)
            {
                list.Add(comboboxItems[i].Current.Name);
            }
            return(list.ToArray());
        }
예제 #5
0
 public static void SetChecked(this IWin32MarkerExtension uiaRadioButton, bool bCheck)
 {
     if (bCheck)
     {
         if (uiaRadioButton.GetTogglePattern().Current.ToggleState != System.Windows.Automation.ToggleState.On)
         {
             uiaRadioButton.GetTogglePattern().Toggle();
         }
     }
     else
     {
         if (uiaRadioButton.GetTogglePattern().Current.ToggleState != System.Windows.Automation.ToggleState.Off)
         {
             uiaRadioButton.GetTogglePattern().Toggle();
         }
     }
 }
예제 #6
0
        public static void SelectItem(this IWin32MarkerExtension uiaCombo, string item)
        {
            var allItems = uiaCombo.AutomationElement.FindAll(TreeScope.Subtree, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem));
            AutomationElement itemToSelect = null;

            for (int i = 0; i < allItems.Count; i++)
            {
                if ((allItems[i].Current.Name.Equals(item)))
                {
                    itemToSelect = allItems[i];
                    break;
                }
            }
            if (itemToSelect != null)
            {
                var selectPattern = (SelectionItemPattern)itemToSelect.GetCurrentPattern(SelectionItemPattern.Pattern);
                selectPattern.Select();
            }
        }
예제 #7
0
 public static GridPattern GetGridPattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(GridPattern.Pattern) as GridPattern);
 }
예제 #8
0
 public static SelectionPattern GetSelectionPattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(SelectionPattern.Pattern) as SelectionPattern);
 }
예제 #9
0
 public static string GetText(this IWin32MarkerExtension uiaTextBox)
 {
     return(uiaTextBox.GetValuePattern().Current.Value);
 }
예제 #10
0
 public static void SetText(this IWin32MarkerExtension uiaTextBox, string text)
 {
     uiaTextBox.GetValuePattern().SetValue(text);
 }
예제 #11
0
 public static WindowPattern GetWindowPattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern);
 }
예제 #12
0
 public static bool IsModelDialog(this IWin32MarkerExtension uiaWindow)
 {
     return(uiaWindow.GetValue <bool>(WindowPattern.IsModalProperty));
 }
예제 #13
0
 public static ScrollItemPattern GetScrollItemPattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(ScrollItemPattern.Pattern) as ScrollItemPattern);
 }
예제 #14
0
 public static MultipleViewPattern GetMultipleViewPattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(MultipleViewPattern.Pattern) as MultipleViewPattern);
 }
예제 #15
0
 public static DockPattern GetDockPattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(DockPattern.Pattern) as DockPattern);
 }
예제 #16
0
 public static string GetContent(this IWin32MarkerExtension uiaWindow)
 {
     return(uiaWindow.GetTextPattern().DocumentRange.GetText(-1));
 }
예제 #17
0
 public static InvokePattern GetInvokePattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern);
 }
예제 #18
0
 public static ExpandCollapsePattern GetExpandCollapsePattern(this IWin32MarkerExtension uiaAutomation)
 {
     return
         (uiaAutomation.AutomationElement.GetCurrentPattern(ExpandCollapsePattern.Pattern) as
          ExpandCollapsePattern);
 }
예제 #19
0
 public static System.Windows.Automation.ToggleState GetCheckStatus(this IWin32MarkerExtension uiaRadioButton)
 {
     return(uiaRadioButton.GetTogglePattern().Current.ToggleState);
 }
예제 #20
0
 public static RangeValuePattern GetRangeValuePattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(RangeValuePattern.Pattern) as RangeValuePattern);
 }
예제 #21
0
 public static bool IsSelected(this IWin32MarkerExtension uiaRadioButton)
 {
     return(uiaRadioButton.GetSelectionItemPattern().Current.IsSelected);
 }
예제 #22
0
 public static TableItemPattern GetTableItemPattern(this IWin32MarkerExtension uiaAutomation)
 {
     return(uiaAutomation.AutomationElement.GetCurrentPattern(TableItemPattern.Pattern) as TableItemPattern);
 }
예제 #23
0
 public static void CloseWindow(this IWin32MarkerExtension uiaWindow)
 {
     uiaWindow.GetWindowPattern().Close();
 }