|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Inno Setup. Прочие вопросы |
|
Inno Setup. Прочие вопросы
|
Ветеран Сообщения: 1271 |
Профиль | Отправить PM | Цитировать
Внимание!!! Данная тема не предназначена для обсуждения скриптов! Для этого создана отдельная тема! Скрипты Inno Setup. Помощь и советы Описание
Inno Setup - это бесплатный инсталлятор для программ Windows. Впервые появился в 1997 году, Inno Setup сегодня, конкурирует и даже превосходит многие коммерческие инсталляторы по возможностям и стабильности. Основные достоинства:
Основной бесплатный конкурент - NSIS. Последняя стабильная версия - 6.3.1 [10.06.2024]. История версий. Официальные сборки Inno Setup 6.3.1: Редакторы iss-скриптов:
Дополнительно
Справка
Русификаторы
Распаковщики/декомпиляторы инсталляторов Inno Setup
Параметры командной строки инсталлятора (ссылка) |
|
Отправлено: 00:25, 24-08-2009 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Bio_Hazard,
Отправил Вам в личку, попробуйте, может приживется... |
------- Отправлено: 19:03, 01-09-2022 | #641 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Доброго дня. Есть сборка игры. Нужно чтобы перед установкой Стим был выключен. Можно, конечно, написать огромными буквами, что стим надо закрывать до начала установки, но всегда найдется кто-то, кто тыкает далее не читая вообще ничего. Поэтому хотелось бы в инсталяторе делать принудительное закрытие. Например, через cmd: taskkill /im steam.exe.
Но как сделать это до установки? Т.е. надо что-то вроде [InstallDelete], но для команд. Писать свой скрипт? Если да, то может есть уже готовые примеры, которые выполняются до установки. |
Отправлено: 09:36, 08-10-2022 | #642 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата 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
|
Профиль | Отправить PM | Цитировать Цитата Vanadiy777:
Нашел еще тут скрипт, но он что-то не работает. http://forum.oszone.net/post-2401734-1524.html Пишет, что Unknown identifier 'CallbackAddr' Цитата Vanadiy777:
Тогда еще вопрос. Можно ли добавить условие как-то, чтобы закрывался он только в том случае, если выбран вариант установки для Стим? Есть компоненты в [Components] только для стим. И если пользователь их выбрал, то стим закрывается, не выбрал - ничего не делаем. |
||
Отправлено: 19:05, 08-10-2022 | #644 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата EdMSL:
Первый вариант, который я Вам предложил, самый простой, и работает без сторонних библиотек... Проверено на версиях компилятора 5.6.1- 6.0.5. Сам им пользуюсь. P.S. Нам с Вами надо в эту тему перебраться... А то модераторы будут недовольны... |
|
------- Последний раз редактировалось Vanadiy777, 08-10-2022 в 19:30. Отправлено: 19:20, 08-10-2022 | #645 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Цитата Vanadiy777:
|
|
Отправлено: 19:45, 08-10-2022 | #646 |
Новый участник Сообщения: 26
|
Профиль | Отправить 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'; |
Последний раз редактировалось EdMSL, 04-11-2022 в 09:45. Отправлено: 09:30, 04-11-2022 | #647 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Хочу добавить для определенного exe запуск от администратора. Нагуглил, что можно в секции [Registry] добавить запись.
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueType: String; ValueName: "{app}\MO2\ModOrganizer.exe"; ValueData: "RUNASADMIN"; Flags: uninsdeletekey; Для HKCU вместо HKLM работает. |
Последний раз редактировалось EdMSL, 04-11-2022 в 10:55. Отправлено: 10:21, 04-11-2022 | #648 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата EdMSL:
странно, у меня в HKLM нормально добавляется все и работает... Скрытый текст
|
|
------- Последний раз редактировалось Vanadiy777, 05-11-2022 в 14:55. Отправлено: 14:28, 05-11-2022 | #649 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Vanadiy777, а у меня вот только HKCU добавляет. Оставил так, в принципе, достаточно в моем случае. Если у других будет добавляться, то хорошо.
|
Отправлено: 07:33, 07-11-2022 | #650 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Утилиты - [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 |
|