从ProcessSerialNumber获取应用程序图标

时间:2010-03-16 09:53:12

标签: c++ cocoa macos macos-carbon

我想获取在Mac上运行的所有前台应用程序的应用程序图标。我已经使用Process Manager API迭代所有应用程序。我已确定在modeBackgroundOnly中设置processMode标志(从GetProcessInformation()检索)的任何进程都是“前台”应用程序,并显示在任务切换器窗口中

我需要的只是一个API,它为我提供了一个包含进程应用程序图标的CImageRef(或类似文件)。我可以自由使用碳或可可API。

2 个答案:

答案 0 :(得分:5)

在Mac OS X 10.6或更高版本中,您可以ask a running application for its icon

在早期版本的Mac OS X上,您必须通过查看应用程序的捆绑包来获取它。将PSN传递到the GetProcessBundleLocation function以将包的位置作为FSRef,然后将其传递给the GetIconRefFromFileInfo function

答案 1 :(得分:3)

您可以使用LaunchServices函数(Carbon)或NSWorkspace类(Cocoa)。