問題摘要:編程確定活動應用程序的文件夾(OSX)
1)如何獲取OSX下當前活動應用程序的路徑? (即擁有當前關鍵窗口的應用程序)
2)由此,我需要確定該應用程序的正常關聯的圖標文件(即當您在「應用程序中查看該應用程序時查找器顯示的圖像「文件夾,然後在出現的應用程序列表,當你按下Command(蘋果)Tab鍵)
詳細問題描述:
我開發需要顯示名稱的OSX工具欄(浮動窗口)和當前應用程序的圖標圖像(例如,擁有當前「關鍵」窗口的應用程序)
1)我需要一些編程方式來確定當前主鍵&鍵的應用程序的「.app文件夾路徑」。這可以通過通知回調,或者我可以在定時器上輪詢並觸發自己的回調。
2)我可以看到手動查找XXX.app/Resources文件夾內的文件是比較容易的,但問題是有時候該文件夾中有1個以上的文件 - 我可以看不到從單獨的文件名中確定哪個是與應用程序正常關聯的正確圖標 - 而許多應用程序使用與應用程序相同的名稱(具有icns擴展名),但有些則不然。
safari例如有一個完全無關的名稱「compass.icns」。必須有一個文件告訴finder使用哪個文件 - 或者api調用來執行此操作,任何人都有任何想法? NSApplication具有applicationIconImage方法,它顯然會返回MY應用程序的圖標 - 這不是我想要的 - 據我所知,沒有辦法爲另一個應用程序實例化NSApplication,並且將它作爲大多數方法沒有實際意義/屬性是該應用程序專用的東西。
爲什麼它的價值,我將一個Windows實用程序移植到OSX - 如果我在Windows下這樣做,我會使用GetWindowProcessID(GetForegroundWindow)),並使用它來確定應用程序的路徑,並提取圖標從那使用LoadIcon
謝謝。我在提出這個問題後不久就發現了NSRunningApplication類,這個問題大部分都是我想要的,但我現在可以看到NSWorkspace是更好的選擇。乾杯。 – unsynchronized 2011-05-23 04:05:42