Для уровня функциональности деинсталлятора, о котором вы говорите, я предлагаю вам ознакомиться со скриптами паскалей в Inno Setup (если вы еще этого не сделали). Он предлагает невероятную настройку, но имеет услугу сделать ваши проекты намного более сложными.
Сначала ответьте на третий вопрос:
Да, вы должны это сделать. Чтобы сделать это правильно, вам нужно добавить эту функцию в деинсталлятор второго приложения (то есть того, от которого зависит ваше приложение). См. Uninstall event functions
в справке Inno Setup. Вам нужно проверить в этом деинсталляторе, установлено ли ваше приложение (например, проверив, существует ли HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName
), и в этом случае показать дополнительное предупреждение.
Что касается вашего второго вопроса:
Если удаленно возможно, что ваш клиент захочет продолжить использование второго приложения, даже если он решит, что он хочет удалить первое приложение, вы должны предложить ему выбор. Я сделал бы это на отдельной странице мастера в деинсталляторе для вашего приложения, после того как ваше приложение было удалено.
И, наконец, ваш первый вопрос:
Вам необходимо определить имя (полный путь) exe для удаления из другого приложения . Вы можете получить его из раздела реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName\UninstallString
. Чтобы выполнить его из сценария в разделе [CODE], смотрите Exec
в справке Inno Setup.