IUIAutomationValuePattern SetValue не имеет никакого эффекта

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

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

1 ответ

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

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

Другие вопросы по тегам