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

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

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

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

Ветеран


Contributor


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


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

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


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

  • RegExporter - Бесплатная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.3.0 [17.01.2015] - Скачать;



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

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

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


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

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


Nordek, Я видел "532" пост, когда искал решение "удаление перед установкой" несколько раз.

Не понимая заданного вопроса "TROY Diamond" (Мне нужно, чтобы мой установщик при запуске находил уже ранее установленное приложение, НЕ только моим, НО и другими установщиками) - просто проходил мимо.
Теперь понял, спасибо за наводку

Но мне не то нужно, может есть возможность выполнить батник, или же конслольные команды после нажатия на финиш инсталлятора?
Банально мне нужно чтобы мой инсталятор само уничтожался после выполнения, как это делает unins000.exe...

Последний раз редактировалось Beavimo, 27-02-2020 в 07:08.


Отправлено: 06:27, 27-02-2020 | #581



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

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


Аватара для Tco 03

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


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

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


Инсталлятор самоуничтожится после выполнения!

procedure CurStepChanged(CurStep: TSetupStep);
var ResultCode: Integer;
begin
if CurStep = ssDone then
begin
SaveStringToFile(ExpandConstant('{userappdata}\del.bat'), '@echo off' +#13#10+ ':trydel' +#13#10+ 'del "' + ExpandConstant('{srcexe}') + '"' +#13#10+ 'if exist "' + ExpandConstant('{srcexe}') + '" goto trydel' +#13#10+ 'del "' + ExpandConstant('{userappdata}\del.bat') + '"', False);
Exec(ExpandConstant('{userappdata}\del.bat'), '', '', SW_HIDE, ewNoWait, ResultCode);
end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:55, 08-03-2020 | #582


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


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

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


Буду признателен. Не нашел (плохо искал наверно)

у меня папка установки берется из реестра. ={reg:HKLM64\SOFTWARE\Avid\install,Main Path} (как пример)
Все нормально никаких проблем. Мне просто нужно чтобы при установке этот путь показывался но НЕ давал сменить.
в Inno Script Studio пробовал. или не нашел или просто не появляется путь вообще.
Спасибо заранее.

Отправлено: 17:56, 09-03-2020 | #583


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата VLADEV:
показывался но НЕ давал сменить. »
код
Код: Выделить весь код
procedure InitializeWizard();
begin
  WizardForm.DirBrowseButton.Enabled := False;
  WizardForm.DirEdit.Enabled := False;
end;

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:43, 09-03-2020 | #584


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


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

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


Tco 03, робит

Отправлено: 01:09, 10-03-2020 | #585


Аватара для Alex S

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


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

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


Всем доброго вечера! Давненько я думал избавиться от длинного ключа тихой установки (/verysilent) и заменить его коротким (/S) как у других аналогов InnoSetup.
Читая архив наткнулся на уже готовое решение...
Взял на испытание. В целом код с задачей справляется хорошо, но нашёл одно НО. Заключается оно в регистре.
Ключ в нижнем регистре отрабатывает хорошо, а в верхнем не хочет.
Долго уже чешу бестолковку , но решить задачу не могу.
Прошу помощи в решении задачи с верхним регистром или может у кого-нибудь есть другое решение замены длинного ключа на короткий.

Отправлено: 20:15, 11-03-2020 | #586


Аватара для Alex S

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


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

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


Вопрос снимаю. Опробовал на другом компьютере и всё работает в верхнем и нижнем регистре.
Видать у меня в системе проблемы...
Хотя, если есть у кого-нибудь альтернативные решения буду рад взглянуть!!!

Отправлено: 20:33, 11-03-2020 | #587


Аватара для Alex S

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


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

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


Новая проблема с этим кодом (писал о нем несколькими сообщениями ранее).
Добавил языки в инсталлятор и тихая установка при помощи этого кода не работает.
При запуске с коротким ключом "/S" выводит окно выбора языка (чего не должно быть), жму "Ок" и дальше устанавливает тихо.
Если в функции InitializeSetup параллельно происходят еще какие-то операции (в моем случае это распаковка некоторых *.bmp во временную папку),
то при запуске с коротким ключом выводит окно выбора языка, после нажатия "Ок" и установка проходит в обычном режиме с показом всех последующих окон.
В общем так уже не работает:
[Setup]
AppName=Silent Install Key
AppVerName=Silent Install Key v 1.0
OutputBaseFilename=SilentInstallKey_setup
DefaultDirName={pf}\SilentInstallKey
CreateAppDir=no

[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[code]

function InitializeSetup(): Boolean;
var
i, ResultCode: Integer;
begin
for i := 1 to ParamCount do
if LowerCase(ParamStr(i)) = '/S' then
begin
Exec(ExtractFileName(ExpandConstant('{srcexe}')), '/verysilent', ExtractFileDir(ExpandConstant('{srcexe}')), SW_SHOWNORMAL, ewNoWait, ResultCode);
Exit;
end;
Result := True;
end;

Прошу помощи в решении задачи...

Отправлено: 23:00, 17-03-2020 | #588


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Alex S, Так не пробовал?
код

Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma2/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[_Code]
function InitializeSetup(): Boolean;
var
  i, ResultCode: Integer;
begin
  // проверяем с 1, потому что ParamStr(0) всегда будет имя исполняемого файла 
  for i := 1 to ParamCount do
    if LowerCase(ParamStr(i)) = '/v' then
      begin
        Exec(ExtractFileName(ExpandConstant('{srcexe}')), '/verysilent /LANG=english', ExtractFileDir(ExpandConstant('{srcexe}')), SW_SHOWNORMAL, ewNoWait, ResultCode);
        Exit;
      end;
  Result := True;
end;
хотя, если верить справке, именно ключ /LANG может вызвать окно запроса выбора языка.
Можно еще такой вариант попробовать:
код
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[_Code]
function InitializeLanguageDialog(): Boolean;
var
  i : Integer;
  R : Boolean;
begin
  Result := True;
  R := False;
  for i := 1 to ParamCount do
    begin
      R :=  LowerCase(ParamStr(i)) = '/verysilent';
      if R then Break;
    end;
  if R then Result := False; // тут конструкция в виде Result := not R; может криво стработать, поэтому надежнее так.
end;

Так, возможно, более правильно:
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[_Code]
function InitializeLanguageDialog(): Boolean;
var
  i : Integer;
begin
  Result := True;
  for i := 1 to ParamCount do
    if  LowerCase(ParamStr(i)) = '/verysilent' then
    begin
      Result := False;
      Break;
    end;
end;

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


Последний раз редактировалось Gnom_aka_Lexander, 21-03-2020 в 01:26.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:05, 20-03-2020 | #589


Аватара для Alex S

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


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

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


Gnom_aka_Lexander, спасибо большое!
Приклеил к исходному коду Вашу функцию InitializeLanguageDialog и всё стало работать нормально.
В InitializeSetup ключ /LANG не понадобился...
Первые тесты пока без глюков.

Отправлено: 23:00, 20-03-2020 | #590



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты 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




 
Переход