2009-12-29 92 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

相關問題