最近使用的窗口列表

时间:2010-07-16 15:16:41

标签: objective-c cocoa accessibility macos-carbon

我正在尝试创建一个窗口切换应用程序。有没有办法获得最近使用的其他应用程序的窗口列表?

2 个答案:

答案 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中添加的任何内容以改进这一点)。但希望您可以通过辅助功能框架完成所需的一切。