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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

Новый участник


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

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


Цитата insombia:
mifkys Check: CheckError пробовал такое добавлять? »
а что это такое? пробовал вставитЬ, говорит, что неизвестная функция

Отправлено: 11:39, 24-06-2013 | #681



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

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


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

Ветеран


Contributor


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

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


Цитата mifkys:
а что это такое? пробовал вставитЬ, говорит, что неизвестная функция »
mifkys, потому как insombia не потрудился описать функцию CheckError и дать указание в каких строках необходимо вставить директиву Check. Да и не это вам нужно. Нужно проверять код возврата unzip.exe. Если он не равен 0, то установщик прерывает работу. В секции Run код возврата не проверить, поэтому распаковку нужно описать в секции Code. Допустим, распаковка идет в первую очередь, unzip.exe включен в состав установщика, архивы рядом с установщиком, тогда для распаковки подходит этап ssInstall:
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
var
    ResultCode: Integer;
begin
    case CurStep of
        ssInstall: begin
            ExtractTemporaryFile('unzip.exe');
            Exec(ExpandConstant('{tmp}\unzip.exe'), ExpandConstant('"{src}\arcname.zip"'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
            if ResultCode <> 0 then Abort;
        end;
    end;
end;

Отправлено: 12:33, 24-06-2013 | #682


Ветеран


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

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


del

Отправлено: 12:33, 24-06-2013 | #683


Новый участник


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

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


еще такой вопрос. Можно ли во время установки после каждой записи в блоке [Run] выводить окно о запросе на продолжение установки, чтобы пользователь сам нажимал "Далее"

Цитата El Sanchez:
mifkys, потому как insombia не потрудился описать функцию CheckError и дать указание в каких строках необходимо вставить директиву Check. Да и не это вам нужно. Нужно проверять код возврата unzip.exe. Если он не равен 0, то установщик прерывает работу. В секции Run код возврата не проверить, поэтому распаковку нужно описать в секции Code. Допустим, распаковка идет в первую очередь, unzip.exe включен в состав установщика, архивы рядом с установщиком, тогда для распаковки подходит этап ssInstall: »
спасибо, попробую

Отправлено: 12:43, 24-06-2013 | #684


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

Ветеран


Contributor


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

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


Цитата mifkys:
Можно ли во время установки после каждой записи в блоке [Run] выводить окно о запросе на продолжение установки, чтобы пользователь сам нажимал "Далее" »
mifkys, можно. Вопрос в том, что делать, если пользователь не захочет продолжать. В таком случае прервать работу установщика не удасться.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:56, 24-06-2013 | #685


Новый участник


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

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


Цитата El Sanchez:
Вопрос в том, что делать, если пользователь не захочет продолжать. В таком случае прервать работу установщика не удасться. »
не подскажете как? Мне отменять не надо. Просто нужно контролировать продолжение установки в силу специфики запускаемых приложений.

Отправлено: 17:08, 24-06-2013 | #686


Аватара для Johny777

Ветеран


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

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


mifkys,
Цитата mifkys:
не подскажете как? »
здесь уже через Check: функция с булев значением на выходе(),
если я правильно понимаю поставленную тобой задачу
Пример:
читать дальше »
Код: Выделить весь код
[Run]
Description: {cm:LaunchProgram, Half-Life}; Filename: {app}\half-life\Half-Life.exe; WorkingDir: {app}\half-life; Check: ConfirmRun('{cm:LaunchProgram, Half-Life}?');
Description: {cm:LaunchProgram, Half-Life Blue Shift}; Filename: {app}\half-life blue shift\Half-Life Blue Shift_unlocked.exe; WorkingDir: {app}\half-life blue shift; Check: ConfirmRun('{cm:LaunchProgram, Half-Life Blue Shift}?');
Description: {cm:LaunchProgram, Half-Life Opposing Force}; Filename: {app}\half-life opposing force\Half-Life Opposing Force.exe; WorkingDir: {app}\half-life opposing force; Check: ConfirmRun('{cm:LaunchProgram, Half-Life Opposing Force}?');
Description: {cm:LaunchProgram, Half-Life Decay}; Filename: {app}\half-life decay\Half-Life Decay.exe; WorkingDir: {app}\half-life decay; Check: ConfirmRun('{cm:LaunchProgram, Half-Life Decay}?');



[code  ]
function ConfirmRun(const cMessage: String): Boolean;
begin
    if MsgBox(ExpandConstant(cMessage), mbConfirmation, MB_YESNO) = IDYES then Result := True;
end;


В функции с выводом булев значения зарезервированная переменная Result инициализируется со значением False по дефолту.
Поэтому в данном случае True будет только если функция вывода диалогового окна винды вернёт число под константой IDYES, то бишь пользователь нажмёт "Да"

если Check получит True, то будет "выполнена строка", в данном случае запуск, если False то ничего не произойдёт,
те проверка производится перед действием описанным в строке до которой дошла очередь
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:42, 24-06-2013 | #687


Новый участник


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

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


а как сдлеать так чтобы, если Win 32bit, то в секции [Run] выполнится одни, а если Win 64 bit, то другой?

Отправлено: 23:34, 25-06-2013 | #688


Аватара для Johny777

Ветеран


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

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


Lex_from_Belarus, Таким же макаром:
Код: Выделить весь код
[Run]
// Will Run only on Win 64
Description: {cm:LaunchProgram, Half-Life}; Filename: {app}\half-life\Half-Life.exe; WorkingDir: {app}\half-life; Check: IsWin64();

// Will Run only on Win 32
Description: {cm:LaunchProgram, Half-Life Decay}; Filename: {app}\half-life decay\Half-Life Decay.exe; WorkingDir: {app}\half-life decay; Check: not IsWin64();

PS: Кстати подобный вопрос уже много раз был задан и получил ответ. Юзай поиск почаще!
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:19, 26-06-2013 | #689


Новый участник


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

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


Johny777, да я так пробовал, у меня был вариант:

читать дальше »

[Files]
Source: "e:\xxx\file_32.exe"; Check: full or medium or lite and not isWin64; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "e:\xxx\file_64.exe"; Check: full or medium or lite and isWin64; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Run]
Filename: "{tmp}\file_32.exe"; Parameters: "/s"; Check: full or medium or lite; StatusMsg: "Установка file_32...";
Filename: "{tmp}\file_64.exe"; Parameters: "/s"; Check: full or medium or lite; StatusMsg: "Установка file_64...";


я сделал:

читать дальше »

[Files]
Source: "e:\xxx\file_32.exe"; Check: full or medium or lite and not isWin64; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "e:\xxx\file_64.exe"; Check: full or medium or lite and isWin64; DestDir: "{tmp}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Run]
Filename: "{tmp}\file_32.exe"; Parameters: "/s"; Check: full or medium or lite and not isWin64; StatusMsg: "Установка file_32...";
Filename: "{tmp}\file_64.exe"; Parameters: "/s"; Check: full or medium or lite and isWin64; StatusMsg: "Установка file_64...";


full, medium, lite - это я так реализовал условия для установки и этот файл во все три варианта входит
но к сожалению и 32 и 64 на 64-ке установились

Отправлено: 14:30, 26-06-2013 | #690



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход