Получить значок приложения из ProcessSerialNumber - PullRequest
3 голосов
/ 16 марта 2010

Я хотел бы получить значок приложения для всех приложений переднего плана, работающих на моем Mac. Я уже перебираю все приложения, используя Process Manager API. Я определил, что любой процесс, для которого не установлен флаг modeBackgroundOnly в processMode (полученный из GetProcessInformation()), является приложением "переднего плана" и отображается в окне переключения задач.

Все, что мне нужно, это API, который дает мне CImageRef (или аналогичный), который содержит значок приложения для процесса. Я могу свободно использовать API-интерфейсы на основе углерода или какао.

Ответы [ 2 ]

5 голосов
/ 17 марта 2010

В Mac OS X 10.6 или более поздней версии вы можете запросить у запущенного приложения значок .

В более ранних версиях Mac OS X вы должны получить его, взглянув на пакет приложения. Передайте PSN в функцию GetProcessBundleLocation , чтобы получить местоположение пакета как FSRef, затем передайте это GetIconRefFromFileInfo функция .

3 голосов
/ 16 марта 2010

Вы можете использовать функции LaunchServices (Carbon) или класс NSWorkspace (Какао).

...