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

Компьютерный форум 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

 

Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата Irenis:
А в скрипте что добавить? »
ничего
указывать для распаковки первый файл многотомного архива .001

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 18:13, 20-08-2014 | #1381



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

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


Старожил


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

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


Irenis, только первый остальные он сам подхватит немного опоздал R.i.m.s.k.y. уже ответил тебе
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:13, 20-08-2014 | #1382


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


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

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


Спасибо большое

Отправлено: 18:18, 20-08-2014 | #1383


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


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

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



Что то я наверное рано радовалась. При распаковке ошибка
sshot-9.png

Отправлено: 22:03, 20-08-2014 | #1384


Старожил


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

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


Irenis, покажи строчки на распаковку и названия архивов

Отправлено: 22:57, 20-08-2014 | #1385


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


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

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


Строчка распаковки:

if not IS7ZipExtract ( 0, 100, ExpandConstant('{src}\fwclient.bin.001'), ExpandConstant('{app}\'), false, '') then break;

Названия архивов:

fwclient.bin.001
fwclient.bin.002
fwclient.bin.003
fwclient.bin.004

Отправлено: 23:03, 20-08-2014 | #1386


Старожил


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

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


Irenis, у меня тоже ошибка открытия архива 7z а вот rar распаковывает нормально
ISDone не подерживает распаковку 7z многотомных только у rar а просто 7z без проблем распаковывает
Вариант делить файлы руками

Последний раз редактировалось vint56, 21-08-2014 в 00:19.

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

Отправлено: 23:17, 20-08-2014 | #1387


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


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

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


vint56, Ясно, спасибо, а то уж думала, что это я как всегда что то делаю не так
Только мне rar не подходит, нужно, чтобы архивы были обязательно с расширением bin.
Что можете посоветовать? Паковать чем то другим?

Отправлено: 00:26, 21-08-2014 | #1388


Старожил


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

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


Irenis, вот вариант
[Files]
Source: Include\7z.exe; DestDir: {tmp}; Flags: dontcopy

procedure CurStepChanged(CurStep: TSetupStep);

ExtractTemporaryFile('7z.exe');

if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\7z.exe'), '-o"' + ExpandConstant('{app}') + '" x -y -pPASSWORD "' + ExpandConstant('{src}\bundles.7z.001') + '" ', ExpandConstant('{tmp}'), '...',false) then break;
Будет проблема с делениями на диски что он не будет видет сразу все файлы установка пробежит без распаковки это вариант не поидет


Паковать 7z но файлы делить руками
читать дальше »
Относительно каталога app
Создать папку назвать Data-A в ней создать папку fwclient и resources весит она 6.10 GB 1 архив
и в папку положить файлы вот первый архив чтобы он весил 4 гига
models.pck 1.99 GB (2147483392)
litmodels.pck 1006.16 MB (1055045243)
surfaces.pck 871.75 MB (914100077)
textures.pck 108.87 MB (114163463)
Создать папку Data-B в ней создать папку fwclient и resources 2 архив
building.pck 687.84 MB (721262764)
configs.pck 14.03 MB (14717964)
gfx.pck 214.04 MB (224439976)
grasses.pck 1.98 MB (2079923)
interfaces.pck 11.00 MB (11538963)
loddata.pck 64.52 MB (67657600)
models.pkx 524.88 MB (550378794)
script.pck 5.76 MB (6049439)
sfx.pck 674.65 MB (707423377)
shaders.pck 6.72 MB (7050168)
папка help
book.pck 6.55 MB (6877879)
script.pck 22.61 KB (23160

Последний раз редактировалось vint56, 22-08-2014 в 03:06.


Отправлено: 00:30, 21-08-2014 | #1389


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


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

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


помогите скрыть выбор папки при распаковке

вот это убрать

посмотрите скрипт всё правильно
читать дальше »

Код: Выделить весь код
[Setup]
AppName=VideoCacheView 2.70
AppVerName=VideoCacheView 2.70
AppVersion=2.70
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\VideoCacheView
DefaultGroupName=VideoCacheView
SetupIconFile={app}\SetupIconFile.ico
UninstallDisplayIcon={app}\Uninstall-8.ico
UninstallDisplayName=VideoCacheView 2.70 RePack by Killer000
OutputBaseFilename=VideoCacheView 2.70
Compression=lzma2/ultra64
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
Uninstallable=not IsComponentSelected('portab')
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableWelcomePage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

[Files]
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion 64bit; Check: Lang1 and portab
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and portab;
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and portab;
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion 64bit; Check: Lang2 and portab
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and portab
;Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion 32bit; Check: Lang2 and portab
;Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion 32bit; Check: Lang2 and portab
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and install
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and install
;Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode
;Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode
Source: "{tmp}\rus.bmp"; Flags: dontcopy solidbreak 
Source: "{tmp}\eng.bmp"; Flags: dontcopy solidbreak
Source: "{tmp}\ISSkin.dll"; Flags: dontcopy solidbreak 
Source: "{tmp}\skin.cjstyles"; Flags: dontcopy solidbreak

[Run]
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait; Check: Lang1 and install
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait; Check: Lang2 and install

[Icons]
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: Comp2
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; MinVersion: 0.0,5.0; Check: Comp2
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: Comp1

[Languages]
Name: "ru"; MessagesFile: "embedded\Russian.isl";

[CustomMessages]
ru.NameAndVersion=%1, версия %2
ru.AdditionalIcons=Дополнительно:
ru.CreateDesktopIcon=Ярлык на &Рабочем столе
ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
ru.ProgramOnTheWeb=Сайт %1 в Интернете
ru.UninstallProgram=Удалить
ru.LaunchProgram=Запустить %1
ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
ru.AssocingFileExtension=Связывание %1 с файлами %2...
ru.AutoStartProgramGroupDescription=Автозапуск:
ru.AutoStartProgram=Автоматически запускать %1
ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
ru.Shortcut=Ярлыки в меню «Пуск»
ru.ContextMenu=Пункт контекстного меню
ru.Install=Установка обычной версии Русский
ru.Installen=Установка обычной версии Англиский
ru.Portable=Распаковка портативной версии (рядом с инсталлятором) Русский
ru.Portableen=Распаковка портативной версии (рядом с инсталлятором) Англиский
Код: Выделить весь код
procedure WizardFormCreate(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
  with WizardForm do
  begin
    Color := $121212;
    OnCreate := @WizardFormCreate;
  end;
end;

procedure WizardFormCreate(Sender: TObject);
begin

end;

var
  Component: TWizardPage; 
  portable,installer,LangRus,LangEng: TNewRadioButton; 
  FlagImage: TBitmapImage; 
  Lang,Copmp: TLabel; 
  CompPanel: TPanel; 
  Icons,PuskIcons: TNewCheckBox; 

procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
  
function InitializeSetup(): Boolean; 
begin 
  if not FileExists(ExpandConstant('{tmp}\rus.bmp')) then ExtractTemporaryFile('rus.bmp'); 
  if not FileExists(ExpandConstant('{tmp}\eng.bmp')) then ExtractTemporaryFile('eng.bmp');
  if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
  if not FileExists(ExpandConstant('{tmp}\Skin.cjstyles')) then ExtractTemporaryFile('Skin.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), ''); 
  Result := True; 
end;
 
 function Lang1: Boolean; 
begin 
  Result:= LangRus.Checked; 
end; 
 
function Lang2: Boolean; 
begin 
  Result:= LangEng.Checked; 
end; 
 
function Comp1: Boolean; 
begin 
  Result:= Icons.Checked; 
end; 
 
function Comp2: Boolean; 
begin 
  Result:= PuskIcons.Checked; 
end; 
 
function install: Boolean; 
begin 
  Result := installer.Checked; 
end; 
 
function portab: Boolean; 
begin 
  Result := portable.Checked; 
end; 
 
procedure CopmpClick(Sender: TObject); 
begin 
  case TNewRadioButton(Sender) of 
    portable: 
    begin 
    Icons.Checked:=False; 
    Icons.Enabled:= Icons.Checked; 
    PuskIcons.Checked:=False; 
    PuskIcons.Enabled:= PuskIcons.Checked; 
    end; 
    installer: 
    begin 
    Icons.Checked:=True; 
    Icons.Enabled:= Icons.Checked; 
    PuskIcons.Checked:=True; 
    PuskIcons.Enabled:= PuskIcons.Checked; 
  end; 
end; 
end; 
 
procedure LangClick(Sender: TObject); 
begin 
  case TNewRadioButton(Sender) of 
    LangRus: 
    begin 
    FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\rus.bmp')); 
    FlagImage.Left := ScaleX(216);
    FlagImage.Top := ScaleY(15);
    end; 
    LangEng: 
    begin 
    FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\eng.bmp')); 
    FlagImage.Left := ScaleX(216);
    FlagImage.Top := ScaleY(15);
    end; 
  end; 
end; 
 
 
procedure InitializeWizard();

begin 
  RedesignWizardForm;
  Component := CreateCustomPage(wpLicense, 'Выбор компонентов', 'Какие компоненты должны быть установлены?');
  FlagImage := TBitmapImage.Create(WizardForm); 
  with FlagImage do 
  begin 
    Name := 'FlagImage'; 
    Parent := Component.Surface; 
    Left := ScaleX(300); 
    Top := ScaleY(15); 
    Width := ScaleX(220); 
    Height := ScaleY(220);  
  end; 
 
  CompPanel := TPanel.Create(WizardForm); 
  with CompPanel do 
  begin 
    Parent := Component.Surface; 
    Left := ScaleX(0); 
    Top := ScaleY(0); 
    Width := ScaleX(200); 
    Height := ScaleY(100); 
    BevelOuter := bvNone; 
  end; 
 
  Copmp := TLabel.Create(WizardForm); 
  with Copmp do 
  begin 
    Parent := CompPanel; 
    Caption := 'Тип и компоненты:'; 
    Left := ScaleX(0); 
    Top := ScaleY(5); 
    Width := ScaleX(150); 
    Height := ScaleY(13); 
  end; 
 
  portable := TNewRadioButton.Create(WizardForm); 
  with portable do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(5); 
    Top := ScaleY(25); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Распаковка портативной версий'; 
    OnClick:=@CopmpClick; 
  end; 
 
  Icons := TNewCheckBox.Create(WizardForm); 
  with Icons do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(25); 
    Top := ScaleY(65); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Ярлык(и) на «Рабочем столе»'; 
    Checked:=True; 
  end; 
 
  PuskIcons := TNewCheckBox.Create(WizardForm); 
  with PuskIcons do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(25); 
    Top := ScaleY(85); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Ярлык в «Пуск меню»'; 
    Checked:=True; 
  end; 
 
  installer := TNewRadioButton.Create(WizardForm); 
  with installer do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(5); 
    Top := ScaleY(45); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Установка обычной версий'; 
    OnClick:=@CopmpClick; 
    Checked:=True; 
  end; 
 
  Lang := TLabel.Create(WizardForm); 
  with Lang do 
  begin 
    Parent := Component.Surface; 
    Caption := 'Язык интерфейса:'; 
    Left := ScaleX(0); 
    Top := ScaleY(120); 
    Width := ScaleX(150); 
    Height := ScaleY(13); 
  end; 
 
  LangRus := TNewRadioButton.Create(WizardForm); 
  with LangRus do 
  begin 
    Parent := Component.Surface; 
    Left := ScaleX(5); 
    Top := ScaleY(135); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Язык интерфейса Русский'; 
    OnClick:=@LangClick; 
    Checked:=True; 
  end; 
 
  LangEng := TNewRadioButton.Create(WizardForm); 
  with LangEng do 
  begin 
    Parent := Component.Surface; 
    Left := ScaleX(5); 
    Top := ScaleY(155); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Язык интерфейса Английский'; 
    OnClick:=@LangClick; 
  end; 
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
    case PageID of
        wpSelectComponents: Result := True;
        wpSelectDir: Result := IsComponentSelected('portab') <> False;
    end;
end;


И как прикрутить в этот скрипт
авто определеннее разрядности системы
вот так работало Check: Is64BitInstallMode для x64
для x32 not Is64BitInstallMode

в Check можно прописывать несколько значений
так не выходит Check: Is64BitInstallMode, Lang1 and portab
помогите

Последний раз редактировалось killer000, 22-08-2014 в 03:51.


Отправлено: 03:40, 22-08-2014 | #1390



Компьютерный форум 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




 
Переход