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