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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 06-06-2020
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Бесплатная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.3.0 [17.01.2015] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты 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

 

Аватара для ZVSRus

Старожил


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

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


Цитата DA-Bro:
Как можно прикрутить кнопку пониже выбора пути установки, чтобы можно было переключать путь с "Program Files (x86)" на "Program Files" и наоборот.

Пример

Код: Выделить весь код
[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;


Но так и не понял логику вопроса.

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 15:37, 31-12-2022 | #971



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

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


Пользователь


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

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


Цитата ZVSRus:
Но так и не понял логику вопроса. »
Здравствуйте! Вот что нужно:

Папку с шаблонами нужно скопировать в папку с программой.
Если установщик находит программу (если она установлена) в "Program Files (x86)" то копирует файлы туда, а если программа находится в "Program Files" то по этому пути.
Если программа не установлена то по идее нужно чтобы появилось сообщение об этом или просто остался путь по умолчанию.

Тут речь идёт не об установки программы а шаблонов в эту программу. Соответственно и "Program.exe" нет в установщике, не указан.

Отправлено: 17:00, 31-12-2022 | #972


Аватара для ZVSRus

Старожил


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

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


Цитата DA-Bro:
Тут речь идёт не об установки программы а шаблонов в эту программу.
Тогда всё понятно. Думаю что предыдущий пример вам просто не нужен. Ищем в реестре куда установлена программа (в pf32 или pf64) и установщик автоматом устанавливает дополнения.
Если программы нет, тогда выдаётся сообщение что программа не найдена, кнопка 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;


Тестируй в паре с предыдущим примером

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 18:55, 31-12-2022 | #973


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


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

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


Всем привет. Подскажите, пожалуйста: требуется, чтобы после установки программы, на рабочем столе в автоматическом режиме создавался ярлык (без права выбора пользователем - создавать его, или нет), и чтобы в этом ярлыке, в поле "Объект", автоматом были прописаны нужные параметры запуска. К примеру: "путь_установки\исполняемый_файл.exe" -параметр запуска 1 -параметр запуска 2
Не могу разобраться, как это сделать.

Отправлено: 17:41, 03-01-2023 | #974


Аватара для Vanadiy777

Ветеран


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

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


inyourspace,
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.

[Files]
Source: "MyProg.exe"; DestDir: "{app}"

[Icons]
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Parameters: "-параметр запуска 1 -параметр запуска 2";

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


Последний раз редактировалось Vanadiy777, 03-01-2023 в 18:26.

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

Отправлено: 18:12, 03-01-2023 | #975


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


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

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


Еще одна проблемка. При подсовывании InfoBeforeFile файла компилятору в txt формате, по итогу в инсталляторе вместо кириллицы в нем кракозябры. Из-за чего может так быть?

Отправлено: 23:31, 03-01-2023 | #976


Аватара для Vanadiy777

Ветеран


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

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


Цитата inyourspace:
Из-за чего может так быть? »
inyourspace,
компилятор, видимо, не понимает кодировку, в которой сохранен txt.
Попробуйте сохранить txt-файл в другой кодировке.

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


Отправлено: 11:41, 04-01-2023 | #977


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


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

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


Приветствую.
Возможно здесь где-то есть ответ, но я сейчас с телефона и искать крайне сложно.

Пожалуйста, подскажите или дайте ссылку на информацию о том, как сделать выборочную распаковку архивов.

К примеру:
Data1.bin нужно установить однозначно.
Затем или Data2.bin, или Data3.bin, что зависит от выбора пользователя. Установить оба архива невозможно.
Далее установить Data4.bin и Data5.bin, или какой-то один из этих архивов, или вовсе ни одного.

Заранее спасибо.

Отправлено: 18:09, 05-01-2023 | #978


Аватара для ZVSRus

Старожил


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

Профиль | Отправить 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

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode


Отправлено: 10:48, 06-01-2023 | #979


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


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

Профиль | Сайт | Отправить 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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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




 
Переход