Получить информацию о значке из исполняемого файла? - PullRequest
0 голосов
/ 11 ноября 2010

Я пытаюсь получить значок из файла .exe, используя следующие API:
SHGetFileInfoW () SHGetImageList () и из полученного таким образом ImageList я прочитал значок, вызвав GetIcon ().

Когда глубина цвета машины установлена ​​на 32 бита, я получаю значок 32-битного цвета. Проблема заключается в том, что когда я меняю глубину цвета аппарата на 24 или 16 бит, я получаю значок цвета 16 бит, и это изображение кажется поврежденным.

Я также проверил список доступных значков в некоторых распространенных приложениях Windows (блокнот, рисование и т. Д.) И некоторых офисных приложениях, ни у одного из которых не было 16-битных или 24-битных цветных значков.

Каков наилучший способ получить правильные значки из исполняемого файла?

Спасибо!

1 Ответ

0 голосов
/ 11 ноября 2010

Вы можете загрузить exe-файлы, используя LoadLibraryEx, а затем извлечь значки, используя LoadImage - или - если вам нужен прямой доступ к данным значков: FindResource, LoadResource, LockResource предоставит вам указатель на биты ресурсов значка.

...