Как я могу установить выбранный элемент в comboBox с UIAutomation? - PullRequest
0 голосов
/ 05 июля 2019

Вопрос касается 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 рушится одновременно

Друзья, кто-нибудь может мне помочь с этой проблемой? Большое спасибо!

...