Max Diesel писал(а):Кнопку там я такую добавить не могу (окно выводится средствами инсталлятора InnoSetup), а вот реализовать в программе "невидимость" для инсталлятора можно, но такая ситуация сулит проблемы в случае попытки обновления-таки запущенной копии... а потому смысл данной модификации мне представляется туманным.
Жаль. Смысл был именно в осознанном игнорировании, а не в отсутствии проверки. А то такого можно наделать...
А у меня вот какой вопрос на эту тему. На флешке есть портабельная версия. Так вот, при обновлении, UC установился на компьютер, с которого запускал (пути ярлыка указывали на флешку). Кроме того, при портабельной версии по идее не нужно делать повышение прав для установщика (в идеале что-то типа распаковки).
Qwertiy писал(а):При автоматическом обновлении программы ярлык перезаписывается и его положение на рабочем столе изменяется. Можно это как-то поправить?
Полагаю, что InnoSetup удаляет старый ярлык и создает новый (причем такой же)... единственный вариант - сделать так, чтобы InnoSetup при определенном параметре командной строки позволял снять флажок создания ярлыка. Однако я попробовал, но не смог убедить его действовать именно так. Если есть идеи относительно того, как это растолковать инсталлятору InnoSetup, то я с радостью их добавлю в код.
avmaksimov писал(а):А у меня вот какой вопрос на эту тему. На флешке есть портабельная версия. Так вот, при обновлении, UC установился на компьютер, с которого запускал (пути ярлыка указывали на флешку).
И в этом плане та же проблема, что и в комментарии, расположенном тремя строками выше - нужно передать в инсталлятор параметр, который бы позволил по умолчанию снять флажок создания ярлыка. Если есть идеи относительно того, как это растолковать инсталлятору InnoSetup, то я с радостью их добавлю в код.
avmaksimov писал(а):Кроме того, при портабельной версии по идее не нужно делать повышение прав для установщика (в идеале что-то типа распаковки).
А разве запрашивается повышение прав? Если не ошибаюсь, оно уже лет пять как отключено...
Qwertiy писал(а):А при админской и включенном? Кажется, один из уровней позволяет требовать привилегии только если они доступны...
Действительно, администраторская учетная запись при UAC выдает запрос, и это несмотря на то, что пользовательская при UAC запускает инсталлятор без запроса.
Max Diesel писал(а):Действительно, администраторская учетная запись при UAC выдает запрос, и это несмотря на то, что пользовательская при UAC запускает инсталлятор без запроса.
Я думаю, пусть так и остаётся, это вроде не должно никому мешать
Qwertiy писал(а):При автоматическом обновлении программы ярлык перезаписывается и его положение на рабочем столе изменяется. Можно это как-то поправить?
Полагаю, что InnoSetup удаляет старый ярлык и создает новый (причем такой же)... единственный вариант - сделать так, чтобы InnoSetup при определенном параметре командной строки позволял снять флажок создания ярлыка. Однако я попробовал, но не смог убедить его действовать именно так. Если есть идеи относительно того, как это растолковать инсталлятору InnoSetup, то я с радостью их добавлю в код.
avmaksimov писал(а):А у меня вот какой вопрос на эту тему. На флешке есть портабельная версия. Так вот, при обновлении, UC установился на компьютер, с которого запускал (пути ярлыка указывали на флешку).
И в этом плане та же проблема, что и в комментарии, расположенном тремя строками выше - нужно передать в инсталлятор параметр, который бы позволил по умолчанию снять флажок создания ярлыка. Если есть идеи относительно того, как это растолковать инсталлятору InnoSetup, то я с радостью их добавлю в код.
avmaksimov писал(а):Кроме того, при портабельной версии по идее не нужно делать повышение прав для установщика (в идеале что-то типа распаковки).
А разве запрашивается повышение прав? Если не ошибаюсь, оно уже лет пять как отключено...
Идея есть: заключается она к сожалению в дублировании кода Inno Setup. По работе тоже активно используем и без него никак. Итак для параметра есть Check - это функция (хотя вроде бы и переменную можно подсунуть), которая определяет, должна ли данная строка выполняться.
Соответственно, можно сделать две строки, где прописать CheckABC и not CheckABC, где и учитывать, портабельная версия или нет.
С ярлыком сложнее... кроме ручной проверки из dll ничего не приходит на ум... Но я бы предложил Qwertiy лучше создать свой ярлык, а при установке (специально сделать ее) снять галочку с установки ярлыка на рабочем столе или где-то еще. Тогда при автообновлении (тихой установке) инсталлятор не будет спрашивать ничего и оставит старые параметры, т.е. без ярлыка. Тогда и ярлык сохранится.
Касательно админ.записи - вроде бы не критично лично для меня и надеюсь для остальных... Но ради перфекционизма...
avmaksimov писал(а):Идея есть: заключается она к сожалению в дублировании кода Inno Setup. По работе тоже активно используем и без него никак. Итак для параметра есть Check - это функция (хотя вроде бы и переменную можно подсунуть), которая определяет, должна ли данная строка выполняться.
Соответственно, можно сделать две строки, где прописать CheckABC и not CheckABC, где и учитывать, портабельная версия или нет.
Благодарю за информацию, я как раз тоже этот параметр обнаружил. Предположительно в следующих билдах ситуация будет обрабатываться корректно (но не раньше чем через один, так как запуск с ключом "portable" будет лишь в следующем билде).
avmaksimov писал(а):С ярлыком сложнее... кроме ручной проверки из dll ничего не приходит на ум... Но я бы предложил Qwertiy лучше создать свой ярлык, а при установке (специально сделать ее) снять галочку с установки ярлыка на рабочем столе или где-то еще. Тогда при автообновлении (тихой установке) инсталлятор не будет спрашивать ничего и оставит старые параметры, т.е. без ярлыка. Тогда и ярлык сохранится.
Касательно админ.записи - вроде бы не критично лично для меня и надеюсь для остальных... Но ради перфекционизма...
В этом плане все оказалось проще, чем по первому пункту. Проблему решает использование флага "checkedonce". Теперь (на этот раз уже со следующего билда, а не с послеследующего) создание ярлыка повторно производиться не будет.