Вопрос касается UIAutomation в C ++, а не C #.
У меня есть элемент comboBox:
IUIAutomationElement* comboBox
Я хочу выбрать, указав значение,
например
Опции в comboBox:
«первый» (выбран по умолчанию),
«Второй»,
"Третий"
Значение, которое я получил:
"Второй"
В C #,
Я могу сделать это как:
AutomationElement ListBox = comboBox.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, "ListBox"));
AutomationElement SelectedItem = ListBox.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "second"));
((SelectionItemPattern)SelectedItem.GetCurrentPattern(SelectionItemPattern.Pattern)).Select();
Но в C ++
он возвращает мне пустой ptr, когда я нахожу listBox.
вот код:
IUIAutomationElement *listBox = NULL;
VARIANT value;
value.vt = VT_INT;
value.intVal = UIA_ListControlTypeId;
IUIAutomationCondition *listBoxCondition = NULL;
uiaObj->GetAutomation()->CreatePropertyCondition(UIA_ControlTypePropertyId, value, &listBoxCondition);
comboBox->FindFirst(TreeScope_Children, listBoxCondition, &listBox);
Я пытался сделать расширение первым вчера
но comboBox рушится одновременно
Друзья, кто-нибудь может мне помочь с этой проблемой?
Большое спасибо!