Конференция "WinAPI" » Иконки установленых приложений
 
  • BaD.P1nG (18.07.08 10:54) [0]
    Проблема такая: получаю список установленых приложений и HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Через DisplayIcon или ModifyPath вытаскиваю часть иконок. Но часть приложений не хранит в реестре эти параметры. Сам исполняемый файл не всегда имеет имя, совпадающее с названием приложения. Где еще стоит поискать(и что бы не зависеть от языка системы)? Может кто-нибудь знает, как стандартная "установка/удаление" получает иконки приложений?
    Благодарю за внимание!
  • multiflex (18.07.08 11:21) [1]
    тут 2 варианта
    1. используеш иконку унинсталлера (как это и в винде сделано) - параметр "UninstallString"
    2. ищеш по GUID в HKEY_CLASSES_ROOT\Installer\Products, параметр "ProductIcon" (вот у меня например это The Bat!, PCAD, 1c, Framework, PartitionMagic....)
  • MultIfleX (18.07.08 11:24) [2]
    GUID'om является имя раздела, к примеру HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90110 419-6000-11D3-8CFE-0150048383C9}
  • BaD.P1nG (18.07.08 11:28) [3]
    Винда использует в установке/удалении не иконку униинсталлера.(сравнивал) А вто ворой способ интересен. Спасибо!
  • BaD.P1nG (18.07.08 11:32) [4]
    Хм, оказалось, что и это еще не позволяет извлечь все иконки...Но еще часть работы сделано, спасибо Вам, MultIfleX!
  • MultIfleX (18.07.08 14:32) [5]

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

    именно её, если ничего больше не осталось, тож сравнивал ;-) правдо у меня таких тока 3
  • BaD.P1nG (18.07.08 14:57) [6]
    Но вот ищу уже тремя способами. но еще не все нашел, а она находит... Причем мониторил реестр, Винда не находит многих путей, а иконки выводит корректные... могу предположить, что просто ищет в папке унинсталлера, но ведь имя исполняемого файла не всегда сопадает с названием продукта(тот же акробат ридер)
  • MultIfleX (25.07.08 07:42) [7]
    Ща глянул - вродебы все прозрачно, смотри:
    береш тотже гуид, который и раньше брал, но для которого вышеуказанным способом иконка не нашлась. к примеру у оффиса у меня {90110419-6000-11D3-8CFE-0150048383C9}

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

    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C
    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C
    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C
    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C

    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C

    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C

    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C

    {90110419-6000-11D3-8CFE-0150048383C9} 9140110900063D11C8EF10054038389C

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

    ЗЫ. Тебе зачем список прог?? Если делаеш путевый унинсталлер, дай посмотреть ;)
  • ZDO (18.08.08 22:32) [8]
    Я не знаю, поможет это или нет, но я когда делал прогу для мониторинга автозагрузки, то пользовался функцией WinAPI ExtractIcon. Возможно тебе это не подойдет, ибо я до конца не врубился в суть проблемы, но все равно.:)
 
Конференция "WinAPI" » Иконки установленых приложений
Есть новые Нет новых   [134435   +33][b:0][p:0]