-
Проблема такая: получаю список установленых приложений и HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Через DisplayIcon или ModifyPath вытаскиваю часть иконок. Но часть приложений не хранит в реестре эти параметры. Сам исполняемый файл не всегда имеет имя, совпадающее с названием приложения. Где еще стоит поискать(и что бы не зависеть от языка системы)? Может кто-нибудь знает, как стандартная "установка/удаление" получает иконки приложений? Благодарю за внимание!
-
тут 2 варианта 1. используеш иконку унинсталлера (как это и в винде сделано) - параметр "UninstallString" 2. ищеш по GUID в HKEY_CLASSES_ROOT\Installer\Products, параметр "ProductIcon" (вот у меня например это The Bat!, PCAD, 1c, Framework, PartitionMagic....)
-
GUID'om является имя раздела, к примеру HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90110 419-6000-11D3-8CFE-0150048383C9}
-
Винда использует в установке/удалении не иконку униинсталлера.(сравнивал) А вто ворой способ интересен. Спасибо!
-
Хм, оказалось, что и это еще не позволяет извлечь все иконки...Но еще часть работы сделано, спасибо Вам, MultIfleX!
-
> Винда использует в установке/удалении не иконку униинсталлера. > (сравнивал) А вто ворой способ интересен. Спасибо!
именно её, если ничего больше не осталось, тож сравнивал ;-) правдо у меня таких тока 3
-
Но вот ищу уже тремя способами. но еще не все нашел, а она находит... Причем мониторил реестр, Винда не находит многих путей, а иконки выводит корректные... могу предположить, что просто ищет в папке унинсталлера, но ведь имя исполняемого файла не всегда сопадает с названием продукта(тот же акробат ридер)
-
Ща глянул - вродебы все прозрачно, смотри: береш тотже гуид, который и раньше брал, но для которого вышеуказанным способом иконка не нашлась. к примеру у оффиса у меня {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
ЗЫ. Тебе зачем список прог?? Если делаеш путевый унинсталлер, дай посмотреть ;)
-
Я не знаю, поможет это или нет, но я когда делал прогу для мониторинга автозагрузки, то пользовался функцией WinAPI ExtractIcon. Возможно тебе это не подойдет, ибо я до конца не врубился в суть проблемы, но все равно.:)
|