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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 30-03-2023

Внимание!!!
Данная тема не предназначена для обсуждения скриптов! Для этого создана отдельная тема!

Скрипты Inno Setup. Помощь и советы





Описание

Inno Setup - это бесплатный инсталлятор для программ Windows. Впервые появился в 1997 году, Inno Setup сегодня, конкурирует и даже превосходит многие коммерческие инсталляторы по возможностям и стабильности.

Основные достоинства:
  • Поддержка всех версий Windows используемых сегодня: Windows 10, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003 и Windows 2000 (независимо от пакета обновлений);
  • Обширная поддержка инсталляций 64-битных приложений на 64-битных выпусках Windows. Также поддерживает x64-разрядные процессоры. (При использовании процессоров Itanium необходимо установить Service Pack);
  • Поддержка создания одного файла EXE, что облегчает установку вашей программы через сеть. Также поддерживается разбивка на диски;
  • Стандартный стиль интерфейса мастера Windows 2000/XP;
  • Настраиваемые типы установки, например: Полная (Full), Компактная (Compact), Выборочная (Custom);
  • Возможность создания деинсталлятора;
  • Установка файлов:
    Включает интегрированную поддержку сжатия файлов (bzip2 и 7-Zip LZMA/LZMA2). Инсталлятор может сравнивать версии файлов, заменять загруженные в память файлы, ведет подсчет общедоступных файлов, регистрирует DLL/OCX и библиотеки типов, устанавливает шрифты;
  • Создание ярлыков, включая меню Пуск и на Рабочем столе;
  • Работа с системным реестром и файлами *.ini;
  • Имеет встроенную поддержку скриптов на Паскале;
  • Поддерживает создание инсталляторов на различных языках;
  • Поддержкивает пароли и шифрование инсталляторов;
  • Поддерживается тихая установка и тихая деинсталляция, с помощью ключей командной строки;
  • Доступен полный исходный код (Borland Delphi 2.0-5.0 и 2009).

Основной бесплатный конкурент - NSIS.

Последняя стабильная версия - 6.2.2 [15.02.2023]. История версий.
Официальные сборки Inno Setup 6.2.2:
Редакторы iss-скриптов:
  • Расширенная версия Inno Setup от Restools

    Сайт: http://restools.hanzify.org/
    Скачать:Рекомендуется к применению из-за огромного количества компонентов, функций и процедур, удобного интерфейса, наличия отладчика и Form Designer. Собран на основе исходников Inno Setup 5.5.1.
    Инструкция по установке

    Инструкция по установке:
    1. Установите ispack-5.5.1.exe или ispack-5.5.1-unicode.exe (5.5.1 - номер официальной версии Inno Setup для последующего обновления расширенной версией);
    2. Скачайте Inno Setup Compiler, распакуйте;
    3. Из одноимённой папки, в соответствии с установленной версией (ANSI или Unicode), скопируйте два файла (Compil32.exe, Templates.dat) в каталог Inno Setup (по умолчанию: C:\Program Files\Inno Setup 5\). Появится сообщение с подтверждением о замене файла, нажимаем 'Да'.
      Примечание: если у вас Unicode версия, то дополнительно примените твик реестра (файл CourierNew.reg) из папки UnicodeFontLink и перезагрузите компьютер.
    4. Скачайте Inno ISCmplr Setup, распакуйте;
    5. Из одноимённой папки, в соответствии с установленной версией (InnoSetup_ANSI или InnoSetup_Unicode), из подпапки FullVCL скопируйте все файлы в каталог Inno Setup (по умолчанию: C:\Program Files\Inno Setup 5\). Появится сообщение с подтверждением о замене файла, нажимаем 'Да'.

  • Inno Script Studio от Kymoto Solutions

    Сайт: https://www.kymoto.org/
    Скачать: Inno Script Studio v2.5.1 [28.11.2020]
    Inno Script Studio является новым, интуитивно понятным, графическим интерфейсом для создания и компиляции скриптов Inno Setup.
Дополнительно



Распаковщики/декомпиляторы инсталляторов Inno Setup

Параметры командной строки инсталлятора (ссылка)

Отправлено: 00:25, 24-08-2009

 

Аватара для Vanadiy777

Ветеран


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

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


Bio_Hazard,
Отправил Вам в личку, попробуйте, может приживется...

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...

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

Отправлено: 19:03, 01-09-2022 | #641



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

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


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


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

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


Доброго дня. Есть сборка игры. Нужно чтобы перед установкой Стим был выключен. Можно, конечно, написать огромными буквами, что стим надо закрывать до начала установки, но всегда найдется кто-то, кто тыкает далее не читая вообще ничего. Поэтому хотелось бы в инсталяторе делать принудительное закрытие. Например, через cmd: taskkill /im steam.exe.
Но как сделать это до установки? Т.е. надо что-то вроде [InstallDelete], но для команд. Писать свой скрипт? Если да, то может есть уже готовые примеры, которые выполняются до установки.

Отправлено: 09:36, 08-10-2022 | #642


Аватара для Vanadiy777

Ветеран


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

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


Цитата EdMSL:
Но как сделать это до установки? Т.е. надо что-то вроде [InstallDelete], но для команд. Писать свой скрипт? Если да, то может есть уже готовые примеры, которые выполняются до установки. »
EdMSL,
Можно так попробовать:
Скрытый текст
Код: Выделить весь код
[_code]
function IsProcessRunning(FileName: String): Boolean;
var
  objSWbemLocator, objSWbemServices: Variant;
begin
  try
    objSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  except
    ShowExceptionMessage;
    Exit;
  end;
  objSWbemServices := objSWbemLocator.ConnectServer();
  objSWbemServices.Security_.ImpersonationLevel := 3;
  Result := (objSWbemServices.ExecQuery('SELECT * FROM Win32_Process WHERE Name="' + FileName + '"').Count > 0);
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
i: integer;

begin
 if CurStep = ssInstall then
  begin
   if IsProcessRunning('Steam.exe') then
    Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM Steam.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
  end;
end;

Перед установкой проверяет, запущен ли Steam.exe, если запущен - то закрывает принудительно и продолжается установка.

Ну, или так:
Скрытый текст
Код: Выделить весь код
[Files]
Source: ISTask.dll; DestDir: {app}; Flags: dontcopy

[_Code]
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';

function InitializeSetup(): Boolean;
begin
  If RunTask('Steam.exe', false) then
    begin
      if MsgBox('Программа Steam используется. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
        begin
          KillTask('Steam.exe');
          Result:= True;
        end else
          Exit;
    end;
Result:=True;
end;

Только тогда ISTask.dll будет нужен...

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Последний раз редактировалось Vanadiy777, 08-10-2022 в 18:42.

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

Отправлено: 17:44, 08-10-2022 | #643


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


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

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


Цитата Vanadiy777:
Можно так попробовать »
Спасибо, попробую.
Нашел еще тут скрипт, но он что-то не работает.
http://forum.oszone.net/post-2401734-1524.html
Пишет, что Unknown identifier 'CallbackAddr'

Цитата Vanadiy777:
Можно так попробовать »
Так, работает.
Тогда еще вопрос. Можно ли добавить условие как-то, чтобы закрывался он только в том случае, если выбран вариант установки для Стим? Есть компоненты в [Components] только для стим. И если пользователь их выбрал, то стим закрывается, не выбрал - ничего не делаем.

Отправлено: 19:05, 08-10-2022 | #644


Аватара для Vanadiy777

Ветеран


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

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


Цитата EdMSL:
Нашел еще тут скрипт, но он что-то не работает. »
EdMSL,
Первый вариант, который я Вам предложил, самый простой, и работает без сторонних библиотек...
Проверено на версиях компилятора 5.6.1- 6.0.5.
Сам им пользуюсь.

P.S. Нам с Вами надо в эту тему перебраться... А то модераторы будут недовольны...

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Последний раз редактировалось Vanadiy777, 08-10-2022 в 19:30.


Отправлено: 19:20, 08-10-2022 | #645


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


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

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


Цитата Vanadiy777:
P.S. Нам с Вами надо в эту тему перебраться... А то модераторы будут недовольны... »
Написал в той теме

Отправлено: 19:45, 08-10-2022 | #646


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


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

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


Для проверки системных требований перед установкой решил использовать сторонние dll. Но теперь при запуске установщика он загружается секунд 20 и только потом появляется первое окно? С этим можно что-то сделать или только не использовать стороние dll?
Код: Выделить весь код
function GetGpuVRam: integer; external 'GetGpuVRam@files:ISSysInfo.dll stdcall delayload';
function GetTotalVisibleMemory: integer; external 'GetTotalVisibleMemory@files:ISSysInfo.dll stdcall delayload';
function GetOSName: PAnsichar; external 'GetOSName@files:ISSysInfo.dll stdcall delayload';
function GetOSArchitecture: Byte; external 'GetOSArchitecture@files:ISSysInfo.dll stdcall delayload';

function GetVideoCardName(): PAnsiChar;external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';
function GetSoundCardName(): PAnsiChar; external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';
function GetSoundCards(): Integer; external 'hwc_GetSoundCards@files:get_hw_caps.dll stdcall';
P.S. Разобрался. DLL надо прописывать в секции [Files] обязательно самыми первыми.

Последний раз редактировалось EdMSL, 04-11-2022 в 09:45.

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

Отправлено: 09:30, 04-11-2022 | #647


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


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

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


Хочу добавить для определенного exe запуск от администратора. Нагуглил, что можно в секции [Registry] добавить запись.
Код: Выделить весь код
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueType: String; ValueName: "{app}\MO2\ModOrganizer.exe"; ValueData: "RUNASADMIN"; Flags: uninsdeletekey;
Но это не работает, запись просто не добавляется. Если exe через свойства добавить запуск от администратора для всех пользователей, то запись появляется.

Для HKCU вместо HKLM работает.

Последний раз редактировалось EdMSL, 04-11-2022 в 10:55.


Отправлено: 10:21, 04-11-2022 | #648


Аватара для Vanadiy777

Ветеран


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

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


Цитата EdMSL:
Но это не работает, запись просто не добавляется. »
EdMSL,
странно, у меня в HKLM нормально добавляется все и работает...
Скрытый текст

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Последний раз редактировалось Vanadiy777, 05-11-2022 в 14:55.


Отправлено: 14:28, 05-11-2022 | #649


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


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

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


Vanadiy777, а у меня вот только HKCU добавляет. Оставил так, в принципе, достаточно в моем случае. Если у других будет добавляться, то хорошо.

Отправлено: 07:33, 07-11-2022 | #650



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход