Sam*_*ami 6 macos cocoa automation macos-carbon
我正在尝试使用辅助功能API自动化外部OSX应用程序.应用程序的某些状态不能通过API获得,因此我通过屏幕抓取获取它.为此,我需要为具有"窗口角色"的辅助功能对象获取CGWindowID.
有没有直接的方法来获取"窗口角色"可访问性对象的CGWindowID?通过匹配窗口的各种属性,例如大小,标题和位置,我可以启发式地获得它,但这真的很糟糕,如果我的应用程序也支持极端情况我会感觉更好,即使它们不太可能.
从至少Leopard开始有一个函数(从10.7.3开始):
extern "C" AXError _AXUIElementGetWindow(AXUIElementRef, CGWindowID* out);
Run Code Online (Sandbox Code Playgroud)
关于使用这样的东西的常见警告虽然适用.它可能会在下次操作系统更新时立即更改!
\xe2\x80\x99s 没有办法做到这一点;可访问性层次结构与实际窗口/视图层次结构完全解耦。我认为你的搭配效果最好。
\n| 归档时间: |
|
| 查看次数: |
1902 次 |
| 最近记录: |