|
Компьютерный форум 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 |
Старожил Сообщения: 291
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
Пример
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application OutputDir=. [Code**] var Button: TNewButton; Flag: Boolean; procedure HideShow(Sender: TObject); begin if not Flag then begin Button.Caption:='x86'; WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf64}')) + 'My Application'; Flag:= True; end else begin Button.Caption:='x64'; WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf32}')) + 'My Application'; Flag:= False; end; end; procedure InitializeWizard(); begin Button := TNewButton.Create(WizardForm); with Button do begin Parent := WizardForm.SelectDirPage; SetBounds(ScaleX(342),ScaleY(120),ScaleX(75),ScaleY(23)); Caption := 'x64'; OnClick := @HideShow end; end; Но так и не понял логику вопроса. |
|
------- Отправлено: 15:37, 31-12-2022 | #971 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Цитата ZVSRus:
Папку с шаблонами нужно скопировать в папку с программой. Если установщик находит программу (если она установлена) в "Program Files (x86)" то копирует файлы туда, а если программа находится в "Program Files" то по этому пути. Если программа не установлена то по идее нужно чтобы появилось сообщение об этом или просто остался путь по умолчанию. Тут речь идёт не об установки программы а шаблонов в эту программу. Соответственно и "Program.exe" нет в установщике, не указан. |
|
Отправлено: 17:00, 31-12-2022 | #972 |
Старожил Сообщения: 291
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
Если программы нет, тогда выдаётся сообщение что программа не найдена, кнопка OK и ничего не происходит. Пример из справки
[Setup] AppName=GetDeviceInfo AppVerName=GetDeviceInfo DefaultDirName={code:GetInstallDir}\My Papka OutputDir=. Uninstallable=no [Code**] function GetInstallDir( AppID: String ): String; var dir: String; begin if not RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\My Application_is1', 'InstallLocation', dir) then RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Application_is1', 'InstallLocation', dir); Result:= dir; end; function InitializeSetup(): Boolean; begin Result:= True; if not RegKeyExists(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\My Application_is1') then begin if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Application_is1') then begin MsgBox('Программа не найдена!', mberror, mb_ok); Result:=False; end; end; end; Тестируй в паре с предыдущим примером |
|
------- Отправлено: 18:55, 31-12-2022 | #973 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Всем привет. Подскажите, пожалуйста: требуется, чтобы после установки программы, на рабочем столе в автоматическом режиме создавался ярлык (без права выбора пользователем - создавать его, или нет), и чтобы в этом ярлыке, в поле "Объект", автоматом были прописаны нужные параметры запуска. К примеру: "путь_установки\исполняемый_файл.exe" -параметр запуска 1 -параметр запуска 2
Не могу разобраться, как это сделать. |
Отправлено: 17:41, 03-01-2023 | #974 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось Vanadiy777, 03-01-2023 в 18:26. Отправлено: 18:12, 03-01-2023 | #975 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Еще одна проблемка. При подсовывании InfoBeforeFile файла компилятору в txt формате, по итогу в инсталляторе вместо кириллицы в нем кракозябры. Из-за чего может так быть?
|
Отправлено: 23:31, 03-01-2023 | #976 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата inyourspace:
компилятор, видимо, не понимает кодировку, в которой сохранен txt. Попробуйте сохранить txt-файл в другой кодировке. |
|
------- Отправлено: 11:41, 04-01-2023 | #977 |
Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать Приветствую.
Возможно здесь где-то есть ответ, но я сейчас с телефона и искать крайне сложно. Пожалуйста, подскажите или дайте ссылку на информацию о том, как сделать выборочную распаковку архивов. К примеру: Data1.bin нужно установить однозначно. Затем или Data2.bin, или Data3.bin, что зависит от выбора пользователя. Установить оба архива невозможно. Далее установить Data4.bin и Data5.bin, или какой-то один из этих архивов, или вовсе ни одного. Заранее спасибо. |
Отправлено: 18:09, 05-01-2023 | #978 |
Старожил Сообщения: 291
|
Профиль | Отправить PM | Цитировать Цитата vetal_the_great@vk:
Может как то так
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application OutputDir=. [Languages] Name: "EN"; MessagesFile: "compiler:Languages\English.isl" Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl" [CustomMessages] EN.ComponentsName1=Install Data1.bin EN.ComponentsName1_1=Install Data2.bin EN.ComponentsName1_2=Install Data3.bin EN.ComponentsName2=Install Data4.bin EN.ComponentsName3=Install Data5.bin RU.ComponentsName1=Установить Data1.bin RU.ComponentsName1_1=Установить Data2.bin RU.ComponentsName1_2=Установить Data3.bin RU.ComponentsName2=Установить Data4.bin RU.ComponentsName3=Установить Data5.bin [Components] Name: Data1; Description: {cm:ComponentsName1}; Types: Full Compact Custom; Flags: fixed Name: Data1\Data2; Description: {cm:ComponentsName1_1}; Types: Full; Flags: exclusive Name: Data1\Data3; Description: {cm:ComponentsName1_2}; Types: Compact; Flags: exclusive Name: Data4; Description: {cm:ComponentsName2}; Types: Full; Name: Data5; Description: {cm:ComponentsName3}; Types: Full; [Files] Source: "Data1.txt"; DestDir: "{app}"; Components: Data1; Flags: ignoreversion Source: "Data2.txt"; DestDir: "{app}"; Components: Data1\Data2; Flags: ignoreversion Source: "Data3.txt"; DestDir: "{app}"; Components: Data1\Data3; Flags: ignoreversion Source: "Data4.txt"; DestDir: "{app}"; Components: Data4; Flags: ignoreversion Source: "Data5.txt"; DestDir: "{app}"; Components: Data5; Flags: ignoreversion |
|
------- Отправлено: 10:48, 06-01-2023 | #979 |
Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо за ответ, но, похоже, что примерно таким способом я и делаю. Минус этого в том, что inno setup засовывает файлы непосредственно в setup.exe, увеличивая его размер. При установке он просто засовывает нераспакованные архивы в папку. Да, можно указать, чтобы установщик эти архивы распечатал, но размер setup.exe от этого не уменьшится. Поэтому я хочу сделать так, чтобы при выборе архива А он распаковывался, а архив Б оставался нетронутым, не засовывался ни в какие папки.
Вот тут идет распаковка: Скрытый текст
if not ISArcExtract ( 0, 100, ExpandConstant('{src}\data.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
Вот какие строчки надо добавить, чтобы установщик, ссылаясь к выбранным компонентам, распаковывал соответствующие архивы, находящиеся в одной папке с setup.exe. |
Отправлено: 12:11, 06-01-2023 | #980 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|