2015-04-24 2 views
1

Я использую MS UIAutomation в C++ для управления сторонним WPF-приложением. Я могу прочитать значение элемента управления редактированием (объекты IUIAutomationElement). Когда я пытаюсь установить значение с помощью SetValue (объекты IUIAutomationValuePattern), он не возвращает ошибку, но не устанавливает значение элемента управления редактирования.IUIAutomationValuePattern SetValue не имеет никакого эффекта

В манифесте содержится, приложение подписано и запускается из C: \ Program Files.

+0

Вы уже пытались с помощью функции inspect.exe & it Value.SetValue для вашего компонента пользовательского интерфейса? – Hansa

ответ

0

Я испытал, что некоторые элементы пользовательского интерфейса не реализуют провайдер автоматизации пользовательского интерфейса правильно, в результате некоторые шаблоны просто не работают должным образом или даже не сработают (хотя они показаны в наличии). Чтобы убедиться, что объект поврежден, а не ваш код , вы можете использовать ValuePattern через Inspect.exe. Open Осмотреть -> выберите элемент управления -> Action (панель инструментов) -> ValuePattern.setValue

В обходного Я хотел бы предложить вам использовать SendKeys. Если вам нужно сначала сфокусировать элемент, вашAutomationElement.setFocus() будет вашим другом. Если setFocus не работает, получите ClickablePoint/BoundingRectangle элемента AutomationElement и используйте user32.dll, чтобы щелкнуть объект.

Смежные вопросы