Inno Setup - Как изменить значок ярлыка деинсталлятора без отдельного файла значка?

Можно ли изменить значок ярлыка деинсталлятора в меню "Пуск", не сохраняя отдельный файл значков (в папке приложения)?

Я вижу это: Использование Resource Hacker для изменения иконки после сборки, но я не могу реализовать это.

Мой код:

[Icons]
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}

1 ответ

Значок ярлыка оболочки Windows можно установить с помощью внешнего файла значков (что вам не нужно) или файла, на который указывает ярлык. Таким образом, вы должны изменить значок удаления.


Вы должны изменить значок удаления во время компиляции.

Вы не можете сделать это во время установки, так как деинсталлятор включает свою собственную контрольную сумму. Если вы изменяете деинсталлятор, он отказывается запускаться, утверждая, что он поврежден. Если вы не узнаете, как также исправить контрольную сумму, сохраненную в деинсталляторе.


Но Inno Setup не позволяет изменять значок удаления во время компиляции.

Что вы можете сделать, это злоупотреблять SignTool "Перезвоните". Команда установлена ​​в SignTool обрабатывает даже деинсталлятор. И он может делать с деинсталлятором все, что угодно, не только подписывать его. Но он должен "подписать" его в любом случае (Inno Setup явно проверяет, что исполняемый файл был подписан после завершения "инструмента").

Вы можете добиться этого, установив SignTool в пакетный файл (или другой скрипт), который будет запускать фактический signtool.exe в конце, но до этого, он изменит значок (например, с помощью командной строки Resource Hacker).

Пример такого пакетного файла, который изменяет деинсталлятор и подписывает его, см. В статье Microsoft SmartScreen - приостановлено с помощью установщика InnoSetup?

Так что это выполнимо, только если вы делаете подпись кода (что вы должны в любом случае). Вам нужен сертификат подписи кода для этого.


Отказ от ответственности: Добавление ярлыка для удаления из меню "Пуск" противоречит рекомендациям Windows (а создание групп меню "Пуск" противоречит рекомендациям Windows для Windows 8 и выше, по крайней мере).

Другие вопросы по тегам