|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1269 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты 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 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать niksan29,
Необходимо чтобы инсталлер, после хотя бы одной установки, в дальнейшем предлагал установку в тот же каталог, что, и ранее, подскажите как это можно организовать
|
------- Отправлено: 11:26, 04-11-2019 | #381 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать Цитата niksan29:
Все, что я вам порекомендую сделать, это включить постоянное отображение страницы выбора папки назначения: - по умолчанию значение 'auto' - страница отключается при повторной установке приложения. |
|
Отправлено: 16:42, 04-11-2019 | #382 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать nik1967, как сказал товарищ
boss911, inno путь по умолчанию,вроде как и так запоминает, позвольте узнать,в чем отличие кода который привели Вы? И ещё вопрос, а если перед установкой новой версии(того что ставим инсталлером, созданным с помощью inno), старую удаляем, то Inno в таком случае будет помнить путь, или нет? И, спасибо за быстрые ответы |
Последний раз редактировалось niksan29, 05-11-2019 в 08:33. Отправлено: 08:19, 05-11-2019 | #383 |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать Цитата niksan29:
Цитата niksan29:
|
||
Отправлено: 10:09, 05-11-2019 | #384 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата boss911:
По сути как раз, это самая важная задача: это чтобы этого не происходило, т.к перед установкой обновления, обязательно надо удалять старую версию... А т.к обновления будут выходить досточно часто, то каждый раз выбирать каталог установки по новой будет не совсем удобно, тем более инсталлеров при обновлении будет около 5-7 разово(данные разбиты по регионам, каждый устанавливает необходимые по одному, или же по очереди все). |
|
Отправлено: 13:01, 05-11-2019 | #385 |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать Цитата niksan29:
|
|
Отправлено: 00:05, 06-11-2019 | #386 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать База данных для ПО, отдельные инсталляционные пакеты около 7(число может меняться) штук , количество необходимых пакетов выбирает пользователь(исходя из его требований/желаний), может быть и 1 из 7 а может и все 7...
Уделяется старые версии с той целью, чтобы каталог очищался и не было конфликтов после установки новой версии , т.к некоторые файлы просто могут отсутствовать в новой версии, соответственно если перед обновлением не почистить каталог, то они(старые старые файлы, которых теперь в обновление нет) останутся и будут мешать... Обновление может ставиться в любой каталог и уже потом, в самом ПО указывается путь до базы и сохраняется... |
Последний раз редактировалось niksan29, 06-11-2019 в 12:03. Отправлено: 11:11, 06-11-2019 | #387 |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать niksan29
На всякий случай уточню, вам нужно, чтобы при установке очередного обновления (отдельный инсталляционный пакет), путь для установки был аналогичен тому, куда было установлено предыдущее обновление, при этом, каталог назначения должен быть очищен перед установкой нового обновления? Тогда пропишите в скрипте обновления следующие: Таким образом, каждое новое обновление можете ставить поверх предыдущего, то есть без предварительной деинсталляции предыдущего, оно сначала удалит в каталоге назначения указанную папку со всем содержимым, только потом начнется установка/распаковка. Например, для установки обновления указан путь "%ProgramFiles%\My Program", тогда оно сначала удалит "%ProgramFiles%\My Program\Base" со всем содержимым, потом начнет устанавливать. Предупреждаю (!), никогда не указывайте для удаления каталог "{app}", так как при не правильных действиях пользователя, может произойти не поправимое, всегда указывайте конкретную конечную папку/файл для удаления, чем уникальней имя, тем лучше. |
Отправлено: 18:24, 06-11-2019 | #388 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать Доброе время суток. Может будет у кого нибудь желание и время переделать скрипт сделанный под IS Ultra под стандартную версию IS v6.x
https://drive.google.com/file/d/1OJG...ew?usp=sharing Просто хочу перейти на стандартную версию, а чтобы довести до рабочего состояния ума не хватает |
------- Последний раз редактировалось habib2302, 07-11-2019 в 12:39. Отправлено: 12:32, 07-11-2019 | #389 |
Ветеран Сообщения: 1269
|
Профиль | Отправить PM | Цитировать Цитата habib2302:
Скрытый текст
#define AppName "HxD Hex Editor" #define AppVersion "2.3" [Setup] AppName={#AppName} AppVerName={#AppName} {#AppVersion} AppId=HxD AppVersion={#AppVersion} AppCopyright=Xabib © 2019 AppPublisher=Mael Horz AppPublisherURL=https://mh-nexus.de/ AppSupportURL=https://mh-nexus.de/hxd/ AppUpdatesURL=https://mh-nexus.de/hxd/ AllowNoIcons=yes DefaultDirName={code:GetDefaultDirName}\HxD DefaultGroupName={#AppName} DisableWelcomePage=yes DisableReadyPage=yes DisableFinishedPage=yes DirExistsWarning=no PrivilegesRequiredOverridesAllowed=dialog SetupIconFile=Install.ico UninstallDisplayIcon={code:GetMainExeFileName} UninstallDisplayName={#AppName} {#AppVersion} OutputBaseFilename={#AppName} {#AppVersion} RePack (& Portable) by Xabib VersionInfoDescription={#AppName} RePack by Xabib VersionInfoVersion={#AppVersion} Compression=lzma2/ultra64 SolidCompression=true InternalCompressLevel=ultra64 LZMADictionarySize=65536 LZMAMatchFinder=BT LZMANumFastBytes=273 ArchitecturesInstallIn64BitMode=x64 Uninstallable=not IsInPortableMode WizardSmallImageFile=WizardSmallImage0.bmp [Languages] Name: enu; MessagesFile: compiler:default.isl Name: rus; MessagesFile: compiler:Languages\russian.isl [Messages] BeveledLabel=RePack by Xabib SelectLanguageTitle={#AppName} [CustomMessages] enu.CreateConfigShowOptions=Show options window (when finishing install) enu.CreateDefaultConfig=Create default configuration enu.ForbiddenDirMessage=In portable mode, %1 should not be installed in "Program Files" or similar system directories. enu.InstallModePageCaption=Pick Installation Mode enu.InstallModePageDescription=Do you prefer integration into Windows or a portable installation? enu.InstallModePageNormalOption=Normal - Integrates into Windows enu.InstallModePagePortableOption=Portable - Supports removeable drives (e.g., USB pen drives) enu.InstallModePageSubCaption=Choose a normal installation that integrates into Windows (e.g., Startmenu, optional Explorer context menu), or a portable installation that can run on any compatible Windows machine. enu.LanguageFilesComponent=Languages enu.OpenInstallFolderAfterInstall=Open installation target folder enu.ProgramFilesComponent=Program Files enu.StatusRunHxDToCreateConfigFile=Create configuration file... enu.TaskConfigurationFile=Configuration file: enu.WriteProtectConfig=Make readonly enu.PortableButtonInstall=&Unpack rus.CreateConfigShowOptions=Показать окно параметров (после завершения установки) rus.CreateDefaultConfig=Создать конфигурацию по умолчанию rus.ForbiddenDirMessage=В портативном режиме %1 не следует устанавливать в «Program Files» или аналогичных системных каталогах. rus.InstallModePageCaption=Выберите тип установки rus.InstallModePageDescription=Предпочитаете интеграцию в Windows или портативную версию? rus.InstallModePageNormalOption=Нормальная - интеграция в Windows rus.InstallModePagePortableOption=Портативная - поддерживает переносимые устройства (USB/HDD) rus.InstallModePageSubCaption=Выберите нормальный тип для установки программы в Windows (добавление в меню Пуск, опционально в контекстное меню) или портативную для работы программы на любом ПК, совместимым с Windows rus.LanguageFilesComponent=Языки rus.OpenInstallFolderAfterInstall=Открыть папку установки rus.ProgramFilesComponent=Program Files rus.StatusRunHxDToCreateConfigFile=Создать файл конфигурации... rus.TaskConfigurationFile=Файл конфигурации: rus.WriteProtectConfig=Сделать доступным только для чтения rus.PortableButtonInstall=&Распаковать [Files] Source: {app}\HxD32_enu.exe; DestDir: {app}; DestName: HxD.exe; Languages: enu; Flags: replacesameversion; Check: not IsInPortableMode and not IsWin64 Source: {app}\HxD32_enu.exe; DestDir: {app}; DestName: HxD32.exe; Languages: enu; Flags: replacesameversion; Check: IsInPortableMode Source: {app}\HxD64_enu.exe; DestDir: {app}; DestName: HxD.exe; Languages: enu; Flags: replacesameversion; Check: not IsInPortableMode and IsWin64 Source: {app}\HxD64_enu.exe; DestDir: {app}; DestName: HxD64.exe; Languages: enu; Flags: replacesameversion; Check: IsInPortableMode and IsWin64 Source: {app}\HxD32_rus.exe; DestDir: {app}; DestName: HxD.exe; Languages: rus; Flags: replacesameversion; Check: not IsInPortableMode and not IsWin64 Source: {app}\HxD32_rus.exe; DestDir: {app}; DestName: HxD32.exe; Languages: rus; Flags: replacesameversion; Check: IsInPortableMode Source: {app}\HxD64_rus.exe; DestDir: {app}; DestName: HxD.exe; Languages: rus; Flags: replacesameversion; Check: not IsInPortableMode and IsWin64 Source: {app}\HxD64_rus.exe; DestDir: {app}; DestName: HxD64.exe; Languages: rus; Flags: replacesameversion; Check: IsInPortableMode and IsWin64 [Registry] Root: HKCR32; Subkey: *\shell\HxD; Flags: uninsdeletekey dontcreatekey Root: HKCR32; Subkey: *\shell\HxDReadonly; Flags: uninsdeletekey dontcreatekey Root: HKCR64; Subkey: *\shell\HxD; Check: IsWin64; Flags: uninsdeletekey dontcreatekey Root: HKCR64; Subkey: *\shell\HxDReadonly; Check: IsWin64; Flags: uninsdeletekey dontcreatekey [Run] Filename: {code:GetMainExeFileName}; Parameters: {code:GetHxDConfigParams}; StatusMsg: {cm:StatusRunHxDToCreateConfigFile}; Check: IsInPortableMode Filename: {code:GetMainExeFileName}; Description: {cm:LaunchProgram,{#AppName}}; Flags: postinstall skipifsilent nowait; Check: not IsInPortableMode Filename: {app}; Description: {cm:OpenInstallFolderAfterInstall}; Flags: shellexec postinstall skipifsilent nowait; Check: IsInPortableMode [Icons] Name: {group}\HxD; Filename: {code:GetMainExeFileName}; Check: not IsInPortableMode Name: {autoappdata}\Microsoft\Internet Explorer\Quick Launch\HxD; Filename: {code:GetMainExeFileName}; Tasks: quicklaunchicon; Check: not IsInPortableMode Name: {autodesktop}\HxD; Filename: {code:GetMainExeFileName}; Tasks: desktopicon; Check: not IsInPortableMode [Tasks] Name: createdefaultconfig; Description: {cm:CreateDefaultConfig}; GroupDescription: {cm:TaskConfigurationFile}; Flags: exclusive; Check: IsInPortableMode Name: createconfigshowoptions; Description: {cm:CreateConfigShowOptions}; GroupDescription: {cm:TaskConfigurationFile}; Flags: exclusive unchecked; Check: IsInPortableMode Name: makeconfigreadonly; Description: {cm:WriteProtectConfig}; GroupDescription: {cm:TaskConfigurationFile}; Flags: unchecked; Check: IsInPortableMode Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Check: not IsInPortableMode Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Check: not IsInPortableMode [Code] var InputOptionPage: TInputOptionWizardPage; function IsInPortableMode: Boolean; begin Result := InputOptionPage.Values[1]; end; function GetDefaultDirName(const AParam: string): string; begin if ExpandConstant('{param:portable|0}') = '1' then Result := ExpandConstant('{userdesktop}') else Result := ExpandConstant('{autopf}'); end; function GetMainExeFileName(const AParam: string): string; begin if not IsInPortableMode then Result := ExpandConstant('{app}\HxD.exe') else if not IsWin64 then Result := ExpandConstant('{app}\HxD32.exe') else Result := ExpandConstant('{app}\HxD64.exe'); end; function GetHxDConfigParams(const AParam: string): string; begin Result := '/chooselang:' + ActiveLanguage; if IsTaskSelected('createdefaultconfig') then begin Result := Result + ' /createdefaultconfig:'; if IsTaskSelected('makeconfigreadonly') then Result := Result + 'readonly' else Result := Result + 'normal'; end else if IsTaskSelected('createconfigshowoptions') then begin Result := Result + ' /createconfig:'; if IsTaskSelected('makeconfigreadonly') then Result := Result + 'readonly' else Result := Result + 'normal'; end; end; function IsForbiddenDir(const ADir: string): Boolean; begin Result := IsAdminInstallMode and ((not IsWin64 and (Pos(ExpandConstant('{win}'), ADir) = 1)) or (not IsWin64 and (Pos(ExpandConstant('{commonpf32}'), ADir) = 1)) or (IsWin64 and (Pos(ExpandConstant('{commonpf64}'), ADir) = 1))); end; procedure InstallModeListBoxClick(Sender: TObject); begin if IsInPortableMode and (CompareText(WizardDirValue, ExpandConstant('{autopf}\HxD')) = 0) then WizardForm.DirEdit.Text := ExpandConstant('{userdesktop}\HxD') else if not IsInPortableMode and (CompareText(WizardDirValue, ExpandConstant('{userdesktop}\HxD')) = 0) then WizardForm.DirEdit.Text := ExpandConstant('{autopf}\HxD'); end; procedure CreateInstallModePage; begin InputOptionPage := CreateInputOptionPage(wpWelcome, ExpandConstant('{cm:InstallModePageCaption}'), ExpandConstant('{cm:InstallModePageDescription}'), ExpandConstant('{cm:InstallModePageSubCaption}'), True, False); InputOptionPage.Add(ExpandConstant('{cm:InstallModePageNormalOption}')); InputOptionPage.Add(ExpandConstant('{cm:InstallModePagePortableOption}')); InputOptionPage.Values[1] := ExpandConstant('{param:portable|0}') = '1'; InputOptionPage.Values[0] := not InputOptionPage.Values[1]; InputOptionPage.CheckListBox.OnClickCheck := @InstallModeListBoxClick; end; procedure CurPageChanged(CurPageID: Integer); begin case CurPageID of wpSelectTasks: begin if not IsInPortableMode then WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall) else WizardForm.NextButton.Caption := ExpandConstant('{cm:PortableButtonInstall}'); end; end; end; function NextButtonClick(CurPageID: Integer): Boolean; begin Result := True; case CurPageId of wpSelectDir: if IsInPortableMode then begin Result := not IsForbiddenDir(WizardDirValue); if not Result then MsgBox(ExpandConstant('{cm:ForbiddenDirMessage,{#AppName}}'), mbError, MB_OK); end; end; end; function ShouldSkipPage(PageID: Integer): Boolean; begin Result := False; case PageID of wpSelectProgramGroup: Result := IsInPortableMode; end; end; procedure InitializeWizard; begin CreateInstallModePage; end; |
|
Отправлено: 15:01, 10-11-2019 | #390 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|