我想找到哪些應用程序正在運行,特別是我想知道哪個應用程序具有焦點窗口。因此,在任何時候,我都希望應用程序知道用戶正在使用哪個應用程序。我無法弄清楚如何確定選擇哪個應用程序,我只能在我的應用程序中使用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