仅当应用程序“X”(Inspect.exe | Narrator.exe | Magnify.exe)运行时,我才能在 Windows 应用程序中获取一些 IUIAutomationElements。如果没有运行“X”,我尝试从中获取 IUAutomationElement 的应用程序本质上就变成了一个黑匣子。例如,在 Microsoft Excel 中,当“X”运行时,我可以获得单元格标识符(A1、D6 等)。如果背景中没有“X”,我获得的最精细的细节就是 Excel 工作簿本身。
我尝试设置 uiAccess=true 并对应用程序进行签名(使用 http://techsupt.winbatch.com/webcgi/webbatch.exe?techsupt/nftechsupt.web+WinBatch/Manifest+Manifest~Faqs.txt ),将其移动到安全(程序文件)位置,但没有成功。
仅供引用:开发环境:C++ 项目,Microsoft Visual Studio 2015,社区版。
最佳答案
一般来说,要使 UI 自动化发挥作用,自动化的应用程序必须同时运行 UAC level比自动化它的应用程序。
例如,如果 Excel 不是以管理员身份运行,则自动化应用程序不得以管理员身份运行,或者如果 Excel 以管理员身份运行,则自动化应用程序必须以管理员身份运行,等等。
关于c++ - 如果不运行 Inspect.exe、Magnify.exe、Narrator.exe 之一,则无法获取最深的 IUIAutomationElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42383170/