我正在尝试创建一个窗口切换应用程序。有没有办法获得最近使用的其他应用程序的窗口列表?
答案 0 :(得分:0)
你想要使用
[NSWorkspace runningApplications]
为您提供所有正在运行的应用程序的列表,并观看
[NSRunningApplication currentApplication]
知道用户何时切换到新应用程序以跟上最近使用的应用程序。
答案 1 :(得分:0)
从Accessibility framework开始。许多屏幕阅读器的钩子在这里也很有用。特别要查看UIElementInspector示例和NSAccessiblity protocol。
还有Quartz Window services,它可以轻松地为您提供屏幕上所有窗口的列表。不幸的是,它没有与窗口焦点(只是级别)等概念联系在一起,而且我不知道在级别改变时从它获取通知的方法。你可能会做一些事情,比如点击Quartz Event框架来捕获Cmd-Tab等,但这很复杂而且很脆弱。不幸的是no good way将CGWindowID转换为AXUIElementRef(帖子是10.5,但我不知道10.6中添加的任何内容以改进这一点)。但希望您可以通过辅助功能框架完成所需的一切。