Как вызывать сочетания клавиш в автоматизации пользовательского интерфейса? / .СЕТЬ - PullRequest
4 голосов
/ 01 сентября 2009

Я пишу программу для автоматизации формы win32. Я использую библиотеку Microsoft UI Automation. Я не знаю, как я могу получить и вызвать предопределенные сочетания клавиш в этой форме. Теперь я просто получаю AutomationElement из MenuItem и вызываю щелчок по этому элементу. Любые решения? Кто-нибудь делает это?

Ответы [ 2 ]

3 голосов
/ 01 сентября 2009

Насколько я знаю, AutomationElementInformation имеет свойства AcceleratorKey и AccessKey .
Некоторые извлечения из MSDN:

AutomationElement :: AutomationElementInformation :: AcceleratorKey
Последовательность сочетаний клавиш, которые вызывают действие, связанное с элементом.

и

AutomationElement :: AutomationElementInformation :: AccessKey
Символ, связанный с элементом, который используется для активации этого элемента.

И после вы можете использовать SendKeys для имитации нажатия клавиш.

Другой способ - использовать keybd___event, но, AFAIK, он устарел, и Microsoft рекомендует использовать вместо него SendInput . Может быть, это поможет вам.

2 голосов
/ 28 сентября 2009

Вы должны активировать главное окно и вызвать SendKeys :: Send для отправки ключей в активное окно. Это статический метод в классе SendKeys, поэтому отправка ключей в окно не требуется AutomationElement главного окна.

...