Я могу получить некоторые элементы IUIAutomationElements внутри приложений Windows ТОЛЬКО при запуске приложения ‘X’ (Inspect.exe | Narrator.exe | Magnify.exe). Без запуска «X» приложение, из которого я пытаюсь получить IUAutomationElement, по сути становится черным ящиком. Например, в Microsoft Excel я могу получить идентификатор ячейки (A1, D6 и т. Д.), Когда запущено «X». Без «X» на заднем плане самая детальная деталь, которую я получаю, — это сама книга Excel.
Я попытался установить uiAccess = true и подписать приложение (используя http://techsupt.winbatch.com/webcgi/webbatch.exe?techsupt/nftechsupt.web+WinBatch/Manifest+Manifest~Faqs.txt), перемещая его в безопасное местоположение (Program Files), и это не сработало.
К сведению: Dev Env: C ++ Project, Microsoft Visual Studio 2015, Community Edition.
В целом, чтобы автоматизация пользовательского интерфейса работала, автоматизированное приложение должно работать с Уровень UAC чем приложение, которое автоматизирует его.
Так, например, если Excel не запускается от имени администратора, приложение автоматизации не должно запускаться от имени администратора, или если Excel запускается от имени администратора, приложение автоматизации должно запускаться от имени администратора и т. Д.
Других решений пока нет …