我想找到哪些应用程序正在运行,特别是我想知道哪个应用程序具有焦点窗口。因此,在任何时候,我都希望应用程序知道用户正在使用哪个应用程序。我无法弄清楚如何确定选择哪个应用程序,我只能在我的应用程序中使用keyedWindow查看他们正在使用的窗口。如果他们不是在我的应用程序,它只是变成“空”如何查找有关Mac/Cocoa/Obj-C上计算机上运行的其他应用程序的信息?
什么将是很好的,如果我能得到的应用程序名称,窗口的标题(如果可能)
我想找到哪些应用程序正在运行,特别是我想知道哪个应用程序具有焦点窗口。因此,在任何时候,我都希望应用程序知道用户正在使用哪个应用程序。我无法弄清楚如何确定选择哪个应用程序,我只能在我的应用程序中使用keyedWindow查看他们正在使用的窗口。如果他们不是在我的应用程序,它只是变成“空”如何查找有关Mac/Cocoa/Obj-C上计算机上运行的其他应用程序的信息?
什么将是很好的,如果我能得到的应用程序名称,窗口的标题(如果可能)
看一看GetFrontProcess和CopyProcessName(或GetProcessInformation)。或者看一下NSWorkspace::activeApplication。
编辑:参考文件说
我们强烈建议您使用
NSRunningApplication
方法currentApplication
或active
来检索后的Mac OS X v10.6中目标应用此信息。
道歉,我找到了我需要的东西。如果有人正在做同样的事情,这个段应帮助:
NSDictionary *activeApp = [[NSWorkspace sharedWorkspace] activeApplication];
NSLog(@"Active application is: %@", (NSString *)[activeApp objectForKey:@"NSApplicationName"]);
呵呵你打我吧:) – 2009-12-29 08:50:29
我们可以得到所有正在运行的应用程序的名称吗? @jameson – 2015-07-29 09:31:44
获取所有正在运行的应用程序的列表:
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。
嗨,我怎样才能显示结果作为一个字符串? – 2012-11-08 14:38:21
NSRunningApplication具有一个localizedName属性。 – 2012-11-11 19:39:01
如何获取所有正在运行的应用程序的名称? – 2015-07-29 09:24:56
谢谢,我将对此进行调查,看看它是否提供了比sharedWorkspace中的activeApplication更多的信息 – Jameson 2009-12-29 08:43:12
NSWorkspace :: activeApplication现在已被macOS 10.11弃用。 – Daniel 2016-12-29 03:47:52