Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Иконки установленых приложений


BaD.P1nG ©   (2008-07-18 10:54:00) 

Проблема такая: получаю список установленых приложений и HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Через DisplayIcon или ModifyPath вытаскиваю часть иконок. Но часть приложений не хранит в реестре эти параметры. Сам исполняемый файл не всегда имеет имя, совпадающее с названием приложения. Где еще стоит поискать(и что бы не зависеть от языка системы)? Может кто-нибудь знает, как стандартная "установка/удаление" получает иконки приложений?
Благодарю за внимание!


ZDO   (2008-08-18 22:32:00) [1]

Я не знаю, поможет это или нет, но я когда делал прогу для мониторинга автозагрузки, то пользовался функцией WinAPI ExtractIcon. Возможно тебе это не подойдет, ибо я до конца не врубился в суть проблемы, но все равно.:)


MultIfleX   (2008-07-25 07:42:00) [2]

Ща глянул - вродебы все прозрачно, смотри:
береш тотже гуид, который и раньше брал, но для которого вышеуказанным способом иконка не нашлась. к примеру у оффиса у меня {90110419-6000-11D3-8CFE-0150048383C9}

преобразуеш ProductCode в ID_Number:

{ 90110419-6000-11D3-8CFE-0150048383C9} 914011 0900063D11C8EF10054038389C
{90 110419-6000-11D3-8CFE-0150048383C9} 9140 110900063D11C8EF10054038389C
{9011 0419-6000-11D3-8CFE-0150048383C9} 91 40110900063D11C8EF10054038389C
{901104 19-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C

{90110419- 60 00-11D3-8CFE-0150048383C9} 91401109 00 063D11C8EF10054038389C

{90110419-6000- 11 D3-8CFE-0150048383C9} 914011090006 3D 11C8EF10054038389C

{90110419-6000-11D3- 8C FE-0150048383C9} 9140110900063D11 C8 EF10054038389C

{90110419-6000-11D3-8CFE- 0150048383 C9} 9140110900063D11C8EF 1005403838 9C

идеш в HKEY_CLASSES_ROOT\Installer\Products\ID_Number и опля, видиш  параметр ProductIcon

ЗЫ. Тебе зачем список прог?? Если делаеш путевый унинсталлер, дай посмотреть ;)


BaD.P1nG   (2008-07-18 14:57:00) [3]

Но вот ищу уже тремя способами. но еще не все нашел, а она находит... Причем мониторил реестр, Винда не находит многих путей, а иконки выводит корректные... могу предположить, что просто ищет в папке унинсталлера, но ведь имя исполняемого файла не всегда сопадает с названием продукта(тот же акробат ридер)


MultIfleX   (2008-07-18 14:32:00) [4]


> Винда использует в установке/удалении не иконку униинсталлера.
> (сравнивал) А вто ворой способ интересен. Спасибо!

именно её, если ничего больше не осталось, тож сравнивал ;-) правдо у меня таких тока 3


BaD.P1nG   (2008-07-18 11:32:00) [5]

Хм, оказалось, что и это еще не позволяет извлечь все иконки...Но еще часть работы сделано, спасибо Вам, MultIfleX!


BaD.P1nG   (2008-07-18 11:28:00) [6]

Винда использует в установке/удалении не иконку униинсталлера.(сравнивал) А вто ворой способ интересен. Спасибо!


MultIfleX   (2008-07-18 11:24:00) [7]

GUID'om является имя раздела, к примеру HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ {90110 419-6000-11D3-8CFE-0150048383C9}


multiflex   (2008-07-18 11:21:00) [8]

тут 2 варианта
1. используеш иконку унинсталлера (как это и в винде сделано) - параметр "UninstallString"
2. ищеш по GUID в HKEY_CLASSES_ROOT\Installer\Products, параметр "ProductIcon" (вот у меня например это The Bat!, PCAD, 1c, Framework, PartitionMagic....)


Наверх

Титульная страница Поиск, карта сайта Написать письмо