Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 4]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1269
Благодарности: 1027


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Аватара для Ivan_009

Ветеран


Сообщения: 608
Благодарности: 58

Профиль | Цитировать


Johny777 Спасибо...

Отправлено: 16:55, 16-05-2012 | #2051



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1269
Благодарности: 1027

Профиль | Отправить PM | Цитировать


bugmenotagain, запуск деинсталлятора портативной установкой на этапе ssDone это, я так понимаю, для того, чтобы не было файлов деинсталлятора и записей в реестре, т.е. превращаем обычную установку в обычную. Вся эта стройная схема рушится по нескольким причинам: портативная установка в одну папку поверх обычной перепишет/добавит файлы от обычной установки, что есть нехорошо; портативная установка в одну папку поверх обычной на этапе ssDone своим вызовом деинсталлятора вынесет вместе с реестровыми записями и файлами деинсталлятора еще и только что распакованные файлы и, возможно, программную папку. Получим либо голое место, либо только файлы, не вошедшие в лог деинсталлятора.
Начните с этого шаблона и почитайте, наконец, справку:
читать дальше »

Код: Выделить весь код
#define MyAppName "WinDjView"
#define MyAppVersion "1.0.3"
#define MyAppExeName "WinDjView.exe"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
Uninstallable=not IsComponentSelected('portable')

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[Files]
Source: C:\Program Files\WinDjView\*; DestDir: {app}; Flags: ignoreversion createallsubdirs recursesubdirs; Components: default
Source: WinDjViewPortable\*; DestDir: {app}\portable; Flags: ignoreversion createallsubdirs recursesubdirs; Components: portable

[Components]
Name: default; Description: Обычная установка; Flags: exclusive
Name: portable; Description: Портативная установка; Flags: exclusive

[Run]
Filename: {app}\{#MyAppExeName}; Flags: nowait postinstall skipifsilent; Components: default
Filename: {app}\portable\{#MyAppExeName}; Flags: nowait postinstall skipifsilent; Components: portable
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:53, 16-05-2012 | #2052


Аватара для bugmenotagain

Старожил


Сообщения: 293
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


El Sanchez, а вы можете сказать точно как в установщике сделать распаковку портативной программы? без всякого мусора. справку Я читаю. там нет ничего про портативную распаковку.

El Sanchez, Я думаю надо добавить еще CreateUninstallRegKey. в реестре мусор не создавать

Отправлено: 18:15, 16-05-2012 | #2053


Забанен


Сообщения: 216
Благодарности: 62

Профиль | Цитировать


Цитата El Sanchez:
для того, чтобы не было файлов деинсталлятора и записей в реестре »
bugmenotagain, на сколько помню:
достаточно этого
Uninstallable=false - Не создавать деинсталлятор

ну а если уж так хочется деинсталлировать то достаточно этого:
CreateUninstallRegKey=false - Не создавать в реестре ключ деинсталляции

ну а это вроде для того если устанавливаешь один раз, по моему так:
UpdateUninstallLogAppName=false - Не обновлять имя приложения в журнале деинсталляции
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:22, 16-05-2012 | #2054


Аватара для bugmenotagain

Старожил


Сообщения: 293
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


=El Sanchez, а секция code мне не нужна ?

Uninstallable=not IsComponentSelected('portable')
создает удалятор в папке программы. если на него нажать он сам удаляется. программа остается.

UninstallFilesDir={app}\uninstall

Отправлено: 18:27, 16-05-2012 | #2055


Забанен


Сообщения: 216
Благодарности: 62

Профиль | Цитировать


Цитата bugmenotagain:
а секция code мне не нужна ? »
Вроде тот код который у тебя, он вроде ищет ветку реестра для деинталляции, так? Если так, и если у тебя портейбл, да и смотреть с точки зрения логики то не нужно, потому как при CreateUninstallRegKey=false, ключ в реестре создаваться не будет, а значит нечего и искать там.

У тебя уже два варианта:
1. делать чистый портейбл с использованием CreateUninstallRegKey=false, где код который ищет ветку реестра для деинталляции, не понадобится
2. то что тебе предложил El Sanchez, т.е у него 2 в одном и установка как обычного так и портейбл, где в принципе код будет к стати.

Последний раз редактировалось Devils Night, 16-05-2012 в 18:48.


Отправлено: 18:35, 16-05-2012 | #2056


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1269
Благодарности: 1027

Профиль | Отправить PM | Цитировать


Цитата bugmenotagain:
а вы можете сказать точно как в установщике сделать распаковку портативной программы? без всякого мусора »
Цитата El Sanchez:
Uninstallable=not IsComponentSelected('portable') »
Директива Uninstallable указывает установщику создавать/не создавать деинсталлятор и записи деинсталлятора в реестре. В данном случае значение директивы зависит от результата функции IsComponentSelected с параметром portable, т.е. если мы не выбрали компонент portable (Портативная установка), то IsComponentSelected('portable') вернет False, а с учетом того, что перед функцией стоит оператор not, то not False становится True. Деинсталлятор будет создаваться. Ну и наоборот.
Цитата bugmenotagain:
справку Я читаю. там нет ничего про портативную распаковку. »
Help - Setup Scripts Sections - Setup section directives - Uninstallable

Цитата:
Setting this to a boolean expression can be useful if you want to offer the user a 'portable mode' option.

Example:
[Setup]
Uninstallable=not IsTaskSelected('portablemode')

[Tasks]
Name: portablemode; Description: "Portable Mode"


Теперь вопрос. Почему я не написал такой вот напрашивающийся сам собой вариант?
Код: Выделить весь код
Uninstallable=IsComponentSelected('default') //т.е. создавать деинсталлятор, если выбрана обычная установка.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:21, 16-05-2012 | #2057


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
Uninstallable=IsComponentSelected('default') »
камрад, я о таком даже не догадывался!

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 20:33, 16-05-2012 | #2058


Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


Цитата R.i.m.s.k.y.:
камрад, я о таком даже не догадывался! »
в принципе, почти все параметры секции setup, которые требуют ответа - да-нет, могут управлятся булевыми функциями из кода, или встроенными. мне попадались параметры, которые принимают только прямой ответ, сейчас не помню уже, но это только те, которые работают сразу, при запуске инсталла. Те параметры, которые используются в конце установки - вполне управляемы внешними условиями.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 20:49, 16-05-2012 | #2059


Аватара для Sotonisto

Пользователь


Сообщения: 131
Благодарности: 16

Профиль | Сайт | Отправить PM | Цитировать


Доброго времени суток.
Подскажите в чем проблема - текст при выборе папки установки/группы (меню "Пуск") не обновляется.
Возьмем стандартный путь "C:\Program Files\Stalker" - в полоске "путь установки" отображается такой же; если его (во время инсталляции) изменить, например, на "D:\Games\Stalker" - путь установки изменится, но текст в полоске будет стандартным ("C:\Program Files\Stalker"). Как решить эту проблему?
Надеюсь Вы поняли, что я имел в виду. Вот сам скрипт.
P.S.: Лександер, спасибо. Проблема с нулями и вправду решилась после перехода на Ansi-версию

-------
Большой шаг вперед, как правило, следствие хорошего пинка под зад.


Отправлено: 22:50, 16-05-2012 | #2060



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход