2009-12-29 93 views
1

我想找到哪些应用程序正在运行,特别是我想知道哪个应用程序具有焦点窗口。因此,在任何时候,我都希望应用程序知道用户正在使用哪个应用程序。我无法弄清楚如何确定选择哪个应用程序,我只能在我的应用程序中使用keyedWindow查看他们正在使用的窗口。如果他们不是在我的应用程序,它只是变成“空”如何查找有关Mac/Cocoa/Obj-C上计算机上运行的其他应用程序的信息?

什么将是很好的,如果我能得到的应用程序名称,窗口的标题(如果可能)

回答

1

看一看GetFrontProcessCopyProcessName(或GetProcessInformation)。或者看一下NSWorkspace::activeApplication

编辑:参考文件说

我们强烈建议您使用NSRunningApplication方法currentApplicationactive来检索后的Mac OS X v10.6中目标应用此信息。

+0

谢谢,我将对此进行调查,看看它是否提供了比sharedWorkspace中的activeApplication更多的信息 – Jameson 2009-12-29 08:43:12

+0

NSWorkspace :: activeApplication现在已被macOS 10.11弃用。 – Daniel 2016-12-29 03:47:52

6

道歉,我找到了我需要的东西。如果有人正在做同样的事情,这个段应帮助:

NSDictionary *activeApp = [[NSWorkspace sharedWorkspace] activeApplication]; 
NSLog(@"Active application is: %@", (NSString *)[activeApp objectForKey:@"NSApplicationName"]); 
+0

呵呵你打我吧:) – 2009-12-29 08:50:29

+0

我们可以得到所有正在运行的应用程序的名称吗? @jameson – 2015-07-29 09:31:44

4

获取所有正在运行的应用程序的列表:

NSArray *appNames = [[NSWorkspace sharedWorkspace] runningApplications]; 

要得到有效的应用:

NSRunningApplication *currentApp = [NSRunningApplication currentApplication]; 

以下是来自Apple的示例项目:

http://developer.apple.com/mac/library/samplecode/AppList/index.html#//apple_ref/doc/uid/DTS40008859

根据文档,这些都需要10.6。

+0

嗨,我怎样才能显示结果作为一个字符串? – 2012-11-08 14:38:21

+1

NSRunningApplication具有一个localizedName属性。 – 2012-11-11 19:39:01

+0

如何获取所有正在运行的应用程序的名称? – 2015-07-29 09:24:56

相关问题