开发者

Get application icon from ProcessSerialNumber

I would like to get the application icon for all foreground applications running on my Mac. I'm already iterating over all applications using the Process Manager API. I have determined that any process that does not h开发者_如何转开发ave the modeBackgroundOnly flag set in the processMode (as retrieved from GetProcessInformation()) is a "foreground" application, and shows up in the task switcher window.

All I need is an API that gives me a CImageRef (or similar) that contains the application icon for a process. I'm free to use either carbon or cocoa APIs.


On Mac OS X 10.6 or later, you can ask a running application for its icon.

On earlier versions of Mac OS X, you'll have to get it by looking at the application's bundle. Pass the PSN to the GetProcessBundleLocation function to get the bundle's location as an FSRef, then pass that to the GetIconRefFromFileInfo function.


You can use the LaunchServices functions (Carbon) or the NSWorkspace class (Cocoa).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜