获取主应用程序以外的其他正在运行的应用程序的主菜单

时间:2012-02-09 20:40:09

标签: objective-c macos cocoa xcode4

我知道这个问题有点令人困惑,但让我解释一下......

我希望能够获得所有正在运行的应用程序的菜单项标题,而不仅仅是主应用程序。我知道如何使用以下代码获取主应用程序菜单项:

NSMenu *mainMenu = [[NSApplication sharedApplication] mainMenu];

for (NSMenuItem *item in [mainMenu itemArray]){
    NSLog(@"%@", [item title]);
}

我还知道如何使用以下代码获取所有正在运行的应用程序的列表:

[[NSWorkspace sharedWorkspace] runningApplications]

现在我希望能够在sharedWorkspace中获取某个应用程序的mainMenu。

这可能吗......如果是这样,请分享:)谢谢!

1 个答案:

答案 0 :(得分:3)

您需要使用辅助功能API来访问其他应用程序的GUI元素。请注意,您(或您的应用的客户)需要在 Universal Access 系统偏好设置中启用“启用辅助设备访问权限”。

要开始使用,请参阅The Accessibility Hierarchy