|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме 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 |
|
Старожил Сообщения: 292
|
Профиль | Отправить 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 |
|
Пользователь Сообщения: 99
|
Профиль | Отправить PM | Цитировать Цитата ZVSRus:
Папку с шаблонами нужно скопировать в папку с программой. Если установщик находит программу (если она установлена) в "Program Files (x86)" то копирует файлы туда, а если программа находится в "Program Files" то по этому пути. Если программа не установлена то по идее нужно чтобы появилось сообщение об этом или просто остался путь по умолчанию. Тут речь идёт не об установки программы а шаблонов в эту программу. Соответственно и "Program.exe" нет в установщике, не указан. |
|
|
Отправлено: 17:00, 31-12-2022 | #972 |
|
Старожил Сообщения: 292
|
Профиль | Отправить 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 |
|
Старожил Сообщения: 292
|
Профиль | Отправить 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 | |
|