Имя пользователя:
Пароль:
 | Правила  

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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.2.0 [23.09.2014] - Скачать;



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

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

Отправлено: 11:48, 10-03-2014

 

Ветеран


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

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


Dodakaedr, в Inno нет вшитой функции IsWin32.
Простейшее использование IsWin64 на примере установки файлов:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=...


[Files]
;install on x64
Source: MyProg-x64.exe; DestDir: {app}; Check: IsWin64;

;install on x86
Source: MyProg.exe; DestDir: {app}; Check: not IsWin64;
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:53, 31-03-2014 | #171



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

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


Аватара для diman_21Ru

Старожил


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

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


Можно ли реализовать о выходе новой версии и добавить уведомление в любую игру,заранее благодарю

Отправлено: 10:53, 31-03-2014 | #172


Аватара для Stealthmax

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


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

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


Подскажите, как добавить событие для ShowButton, чтобы при нажатии выполнялось действие показать/скрыть панель и сохранялось событие чекбокса при изменении и закрытии панели.
читать дальше »
Код: Выделить весь код
#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppExeName "MyProg.exe"

[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
ShowLanguageDialog=no
Compression=lzma
SolidCompression=yes

[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[_Code]
var
  SettingPanel: TPanel;
  One: TNewCheckBox;
  Two: TNewCheckBox;
  ShowButton: TNewButton;

procedure ShowButtonClick(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
  { SettingPanel }
  SettingPanel := TPanel.Create(WizardForm);
  with SettingPanel do
  begin
    Name := 'SettingPanel';
    Parent := WizardForm.WelcomePage;
    Left := ScaleX(168);
    Top := ScaleY(0);
    Width := ScaleX(329);
    Height := ScaleY(314);
    Visible := False;
    Caption := '';
  end;

  { One }
  One := TNewCheckBox.Create(WizardForm);
  with One do
  begin
    Name := 'One';
    Parent := SettingPanel;
    Left := ScaleX(8);
    Top := ScaleY(24);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Checked := True;
    State := cbChecked;
    Visible := False;
  end;

  { Two }
  Two := TNewCheckBox.Create(WizardForm);
  with Two do
  begin
    Name := 'Two';
    Parent := SettingPanel;
    Left := ScaleX(8);
    Top := ScaleY(48);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Checked := True;
    State := cbChecked;
    Visible := False;
  end;

  One.TabOrder := 0;
  Two.TabOrder := 1;

  SettingPanel.TabOrder := 2;

  { ShowButton }
  ShowButton := TNewButton.Create(WizardForm);
  with ShowButton do
  begin
    Name := 'ShowButton';
    Parent := WizardForm;
    Left := ScaleX(16);
    Top := ScaleY(325);
    Width := ScaleX(75);
    Height := ScaleY(25);
    Caption := 'Show';
    OnClick := @ShowButtonClick;
  end;

  ShowButton.TabOrder := 5;
end;

procedure ShowButtonClick(Sender: TObject);
begin
  SettingPanel.Visible := True;
  One.Visible := True;
  Two.Visible := True;
  ShowButton.Caption := 'Hide';
end;


procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpWelcome then SettingPanel.Visible := False;
end;

Отправлено: 11:02, 31-03-2014 | #173


SHVtYW4=


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

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


Цитата Dodakaedr:
примеры реализации проверок IsWin32, IsWin64 »
Код: Выделить весь код
[Setup]
AppName=IsWin
AppVersion=1.5
DefaultDirName={pf}\IsWin
DefaultGroupName=IsWin
OutputDir=.

[Files]
Source: MyProg32.exe; DestDir: {app}; Check: not IsWin64; Flags: ignoreversion
Source: MyProg64.exe; DestDir: {app}; Check: IsWin64; Flags: ignoreversion

[Registry]
Root: HKLM; SubKey: SOFTWARE\My Program; ValueType: string; ValueName: Install Dir; ValueData: {app}; Flags: uninsdeletekey; Check: not IsWin64
Root: HKLM; SubKey: SOFTWARE\Wow6432Node\My Program; ValueType: string; ValueName: Install Dir; ValueData: {app}; Flags: uninsdeletekey; Check: IsWin64

[Run]
Filename: {app}; Flags: shellexec nowait postinstall; Description: Открыть папку {app}
Filename: {app}\MyProg32.exe; Description: Выполнить MyProg32; Check: not IsWin64; Flags: nowait postinstall
Filename: {app}\MyProg64.exe; Description: Выполнить MyProg64; Check: IsWin64; Flags: nowait postinstall

Код: Выделить весь код
[Setup]
AppName=IsWin
AppVersion=1.5
DefaultDirName={pf}\IsWin
DefaultGroupName=IsWin
OutputDir=.

[Languages]
Name: ru; MessagesFile: compiler:Languages\Russian.isl;
Name: en; MessagesFile: compiler:Languages\Russian.isl;

[CustomMessages]
ru.IsWin32=У вас 32-битная система, программа будет установлена в папку по умолчанию:
ru.IsWin64=У вас 64-битная система, программа будет установлена в папку по умолчанию:
en.IsWin32=32-bit program files reside in:
en.IsWin64=64-bit program files reside in:

[Files]
Source: MyProg32.exe; DestDir: {app}; Check: not IsWin64; Flags: ignoreversion
Source: MyProg64.exe; DestDir: {app}; Check: IsWin64; Flags: ignoreversion

[Registry]
Root: HKLM; SubKey: SOFTWARE\My Program; ValueType: string; ValueName: Install Dir; ValueData: {app}; Flags: uninsdeletekey; Check: not IsWin64
Root: HKLM; SubKey: SOFTWARE\Wow6432Node\My Program; ValueType: string; ValueName: Install Dir; ValueData: {app}; Flags: uninsdeletekey; Check: IsWin64

[Run]
Filename: {app}; Flags: shellexec nowait postinstall; Description: Открыть папку {app}
Filename: {app}\MyProg32.exe; Description: Выполнить MyProg32; Check: not IsWin64; Flags: nowait postinstall
Filename: {app}\MyProg64.exe; Description: Выполнить MyProg64; Check: IsWin64; Flags: nowait postinstall

[Code]
function InitializeSetup: Boolean;
begin
if IsWin64 then
MsgBox(ExpandConstant('{cm:IsWin64}') + ExpandConstant('{pf64}'), mbInformation, MB_OK)
else
MsgBox(ExpandConstant('{cm:IsWin32}') + ExpandConstant('{pf32}'), mbInformation, MB_OK);
result:=true;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:12, 31-03-2014 | #174


Аватара для nik1967

Старожил


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

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


Stealthmax,
читать дальше »
Код: Выделить весь код
#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppExeName "MyProg.exe"

[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
ShowLanguageDialog=no
Compression=lzma
SolidCompression=yes

[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[_Code]
var
  SettingPanel: TPanel;
  One: TNewCheckBox;
  Two: TNewCheckBox;
  ShowButton: TNewButton;
  FlagSB: Boolean;

procedure ShowButtonClick(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
  { SettingPanel }
  SettingPanel := TPanel.Create(WizardForm);
  with SettingPanel do
  begin
    Name := 'SettingPanel';
    Parent := WizardForm.WelcomePage;
    Left := ScaleX(168);
    Top := ScaleY(0);
    Width := ScaleX(329);
    Height := ScaleY(314);
    Caption := '';
  end;

  { One }
  One := TNewCheckBox.Create(WizardForm);
  with One do
  begin
    Name := 'One';
    Parent := SettingPanel;
    Left := ScaleX(8);
    Top := ScaleY(24);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Checked := True;
    State := cbChecked;
  end;

  { Two }
  Two := TNewCheckBox.Create(WizardForm);
  with Two do
  begin
    Name := 'Two';
    Parent := SettingPanel;
    Left := ScaleX(8);
    Top := ScaleY(48);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Checked := True;
    State := cbChecked;
  end;

  One.TabOrder := 0;
  Two.TabOrder := 1;

  SettingPanel.TabOrder := 2;

  { ShowButton }
  ShowButton := TNewButton.Create(WizardForm);
  with ShowButton do
  begin
    Name := 'ShowButton';
    Parent := WizardForm;
    Left := ScaleX(16);
    Top := ScaleY(325);
    Width := ScaleX(75);
    Height := ScaleY(25);
    Caption := 'Show';
    OnClick := @ShowButtonClick;
  end;

  ShowButton.TabOrder := 5;
  FlagSB := False;
end;

procedure ShowButtonClick(Sender: TObject);
begin
  if FlagSB = False then begin
    SettingPanel.Show;
    One.Show;
    Two.Show;
    ShowButton.Caption := 'Hide';
    FlagSB := True;
  end else begin
    SettingPanel.Hide;
    One.Hide;
    Two.Hide;
    ShowButton.Caption := 'Show';
    FlagSB := False;
  end;  
end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpWelcome then SettingPanel.Visible := False;
end;
Немного упростил.

Цитата diman_21Ru:
Можно ли реализовать о выходе новой версии и добавить уведомление в любую игру,заранее благодарю »
Можно, но уж очень много геммора - например, нужно для начала создать сайт для хранения обновлений версий на надёжном хосте.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 31-03-2014 в 13:36.

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

Отправлено: 12:12, 31-03-2014 | #175


Аватара для diman_21Ru

Старожил


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

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


Можно ли как то реализовать в скрипт Лаунчер по оповещению новой версии программы

Отправлено: 12:17, 31-03-2014 | #176


Аватара для nik1967

Старожил


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

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


Цитата diman_21Ru:
Можно ли как то реализовать в скрипт Лаунчер по оповещению новой версии программы »
Как ты себе это представляешь?
Цитата nik1967:
Можно, но уж очень много геммора - например, для начала нужно создать сайт для хранения обновлений версий на надёжном хосте. »

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 12:34, 31-03-2014 | #177


Аватара для Stealthmax

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


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

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


Цитата nik1967:
Немного упростил. »
Спасибо огромное, сам затупил конечно, забыл, что надо добавить значение в var.
Ещё такой вопрос: можно будет обратиться с готовым скриптом, для проверки и правки, если вдруг где-то будут ошибки? А то я давно мурыжу свой скрипт из тонн поисковых запросов google и справки по Inno. Хочу для личных нужд вывести свой и больше не возиться с написанием. На руборде неоднократно обращался, но там народ не сильно сговорчивый, никто ни разу ничего не подсказал. А здесь практически всегда кто-то чем-то поможет или хотя бы ответят, "носом ткнут".

Последний раз редактировалось Stealthmax, 31-03-2014 в 13:09.

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

Отправлено: 12:52, 31-03-2014 | #178


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


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

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


Какой параметр нужно ввести вместо DeleteFile(ExpandConstant('{app}\ts3server.sqlitedb')); чтобы удалить папку со всеми вложенными файлами?

Пример:
читать дальше »

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);begin
if (CurUninstallStep = usUninstall) and
(MsgBox(CustomMessage('Del'), mbInformation, MB_YESNO or MB_DEFBUTTON2) = IDYES) then
DeleteFile(ExpandConstant('{app}\ts3server.sqlitedb'));
end;

Отправлено: 12:57, 31-03-2014 | #179


SHVtYW4=


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

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


Raz3r,
Код: Выделить весь код
[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);begin
 if (CurUninstallStep = usUninstall) and
 (MsgBox(CustomMessage('Del'), mbInformation, MB_YESNO or MB_DEFBUTTON2) = IDYES) then
DelTree(ExpandConstant('{app}\Test'), True, True, True);
end;

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Отправлено: 13:16, 31-03-2014 | #180



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход