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

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

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

Аватара для 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] - Скачать;


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

Отправлено: 19:06, 28-03-2013

 

Ветеран


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

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


semen77 со справки

читать дальше »
[Setup]: DiskSpanning
Возможные значения:
yes или no
Значение по умолчанию:
no

Опмсание:
При значении yesбудет производиться разбиение на диски. Определяет, создавать ли компилятору один файл SETUP.EXE, или делить его на файлы (SETUP-*.BIN), которые помещаются на дискету, CD-ROM, DVD-ROM или другой носитель. Каждый файл в своем имени будет содержать номер, по которому можно будет определить на какой диск его следует скопировать. Скопируйте SETUP.EXE и SETUP-1.BIN на первый диск, SETUP-2.BIN на второй и т. д.

В этом случае размер каждого файла и число файлов, создаваемых для каждого диска диктуется директивой DiskSliceSize и SlicesPerDisk секции [Setup]. Другие директивы, отвечающие за разбиение на диски, которые вы захотите внедрить, должны включать директивы DiskClusterSize и ReserveBytes.

Обратите внимание, что нужно обязательно задать этим директивам значение yes, если размер сжатого файла инсталлятора превышает 2,100,000,000 байт, даже если вы не планируете разбивать инсталлятор на диски. (Инсталлятор будет работать правильно, даже если все SETUP-*.BIN файлы будут размещены на одном диске).

Отправлено: 18:57, 14-06-2013 | #631



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

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


Ветеран


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

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


semen77, никак, насколько мне известно. setup-1.bin неотъемлимая часть инсталятора и должна находится рядом с загрузчиком *.exe
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:12, 14-06-2013 | #632


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


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

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


insombia, saurn, я почему спросил, есть же параметры
Цитата:
/DIR="x:\dirname"
Overrides the default directory name displayed on the Select Destination Location wizard page. A fully qualified pathname must be specified. May include an "expand:" prefix which instructs Setup to expand any constants in the name. For example: '/DIR=expand:{pf}\My Program'.

/GROUP="folder name"
Overrides the default folder name displayed on the Select Start Menu Folder wizard page. May include an "expand:" prefix, see '/DIR='. If the [Setup] section directive DisableProgramGroupPage was set to yes, this command line parameter is ignored.
но они меняют другое...

или с этим
Цитата:
Prototype:
function GetCmdTail: String;
Description:
Returns all command line parameters passed to Setup or Uninstall as a single string.
или с этим
Цитата:
/LOADINF="filename"
Instructs Setup to load the settings from the specified file after having checked the command line. This file can be prepared using the
Don't forget to use quotes if the filename contains spaces.
придумать что-нибудь....

Последний раз редактировалось semen77, 15-06-2013 в 09:04.


Отправлено: 08:34, 15-06-2013 | #633


Ветеран


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

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


Цитата semen77:
/LOADINF="filename" »
Это всего лишь файл ответов инстала. Позволяет выполнять установку с заранее предустановленными параметрами установки.
Цитата semen77:
function GetCmdTail: String; »
Функция возврата параметров ком.строки.
---------------------------------------------------------
По поводу указания ексишнику местоположения псевдо бинарников, знатоки скажут вам более точно. Я с таким никогда не сталкивался, и не думаю, что это возможно. Инсталлятор - *.exe, *.bin - по сути архив, разбитый на части. Все части архива должны располагатся в одной директории.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:35, 15-06-2013 | #634


Ветеран


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

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


у кого-то есть батники для запаковки srep+precomp? а то свои потерял

Отправлено: 17:02, 15-06-2013 | #635


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


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

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


Здравствуйте, друзья!

Собственно, вот что я хотел у Вас спросить. Мне необходимо, чтобы во время установки загрузился файл из Интернета. Организовал я всё это дело через Inno Tools Downloader. Мне необходимо, чтобы этот загружаемый файлик сохранялся не в корневую папку установки, а в подпапку. Попытался написать вот так:

Код: Выделить весь код
  itd_addfile('http://u.to/8Su7Aw',expandconstant('{tmp}\subdir\file')); // Пишем ссылки на файлы тут
Естественно, не качает. Выдаёт ошибку Sorry, the files could not be downloaded. Click 'Retry' to try downloading the files again, or click 'Cancel' to terminate setup. Если просто написать expandconstant('{tmp}\file'), то всё прекрасно закачивается.

Как же можно это организовать? Спасибо.

Отправлено: 20:00, 15-06-2013 | #636


Старожил


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

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


volga163@vk попробуй так
CreateDir(ExpandConstant('{tmp}\subdir'));
itd_addfile('http://u.to/8Su7Aw',expandconstant('{tmp}\subdir\file')); // Пишем ссылки на файлы тут
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:46, 15-06-2013 | #637


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


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

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


Цитата vint56:
volga163@vk попробуй так »
Спасибо огромное, помогло.

Ещё один вопрос. Я использую в коде Паскаля вместо {app} WizardDirValue, но он выдаёт только папку установки по умолчанию. А как можно сделать, чтобы файлы загружались в папку, которую выбирает пользователь при установке? Код:
Код: Выделить весь код
procedure InitializeWizard();
begin
  ITD_Init;
// Оглашаем создание папок Bukkit.
  CreateDir(WizardDirValue()+'\1.5.2 Bukkit\');
  CreateDir(WizardDirValue()+'\1.5.1 Bukkit\');
  CreateDir(WizardDirValue()+'\1.5.0 Bukkit\');
  CreateDir(WizardDirValue()+'\1.4.7 Bukkit\');
  CreateDir(WizardDirValue()+'\1.4.6 Bukkit\');
// ЗАКОНЧИЛИ ОГЛАШАТЬ СОЗДАНИЕ ПАПОК
// -------------------------
// Загружаем следующие файлы
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02161_1.5.2-R0.2/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.2 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.2
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02099_1.5.1-R0.3/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.1 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.1
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01980_1.5-R0.1/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.0 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.0
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01845_1.4.7-R1.0/craftbukkit.jar',Wizarddirvalue()+'\1.4.7 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.7
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01800_1.4.6-R0.4/craftbukkit-dev.jar',Wizarddirvalue()+'\1.4.6 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.6
// ЗАКОНЧИЛИ ЗАГРУЖАТЬ ФАЙЛЫ
// -------------------------
  itd_setoption('UI_DetailedMode', '1'); // Детализированный режим
  itd_downloadafter(wpInstalling); // Загружаем файл после установки
end;

Последний раз редактировалось volga163@vk, 15-06-2013 в 23:05.


Отправлено: 21:04, 15-06-2013 | #638


Ветеран


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

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


Цитата volga163@vk:
Я использую в коде Паскаля вместо {app} WizardDirValue, но он выдаёт только папку установки по умолчанию »
Так и будет, даже если использовать константу {app} ничего не изменится, список папок загрузки у вас создается на этапе инициализации формы мастера, соответственно, когда у пользователя появляется возможность выбрать папку для загрузки, папки уже созданы. Вызывайте процедуру создания папок после страницы выбора папки установки(wpSelectDir), ну или создайте свою страницу, или форму, с едитом для выбора папки и вызывайте ее в нужном вам месте.

Последний раз редактировалось saurn, 16-06-2013 в 12:38.


Отправлено: 11:31, 16-06-2013 | #639


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


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

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


Всем привет, когда то давно делал скрипт, работал на ура, сейчас пробую его и результат плачевный пишет про
Warning: Line 34, Column 1: [Hint] Variable 'WELCOMELABEL1' never used
Warning: Line 34, Column 1: [Hint] Variable 'FINISHEDHEADINGLABEL' never used
Посмотрите в чем может быть проблема?
Заранее большое спасибо.
Вот скрипт
читать дальше »

[Setup]
AppName=AionRus3.7full
AppVerName=3.7
DefaultDirName=l10n
AppCopyright=© 2013 Ckau
WizardImageFile=Style\Background.bmp
WizardSmallImageFile=Style\smallbitmap.bmp
SetupIconFile=F:\Games\aion_na\aion\AionClient.ico
OutputDir=E:\МастерСкая\aion\SETUP\test
Compression=lzma/Ultra

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

[Files]
Source: E:\МастерСкая\aion\SETUP\Style\ISSkin.dll; DestDir: {app}; Flags: dontcopy
Source: E:\МастерСкая\aion\SETUP\Style\Concave_Dark.cjstyles; DestDir: {tmp}; Flags: dontcopy
Source: "E:\МастерСкая\aion\FULL\1\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[code]
var
WelcomeLabel1, WelcomeLabel2, FinishedLabel, FinishedHeadingLabel: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel; MouseLabel,SiteLabel: TLabel;


const
AW_BLEND = $00080000;
AW_HIDE = $00010000;

function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): Boolean;
external 'AnimateWindow@user32 stdcall';

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_OKCANCEL) = IDOK then
begin
Confirm := False;
AnimateWindow(WizardForm.Handle, 2500, AW_BLEND or AW_HIDE);
Cancel := True;
end else
Cancel := False;
end;



procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';

procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Concave_Dark.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Concave_Dark.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
UnloadSkin();
end;


procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://vk.com/aion_us', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed
end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen
end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clYellow
end;

procedure InitializeWizard();
begin
WizardForm.WizardBitmapImage.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Width:= ScaleX(497);

MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm

SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=10
SiteLabel.Top:=330
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=clYellow
SiteLabel.Caption:='Вконтакте Aion US'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm



WelcomeLabel2:= TLabel.Create(WizardForm);
WelcomeLabel2.AutoSize:= False;
with WizardForm.WelcomeLabel2 do
WelcomeLabel2.SetBounds(230,130,340,90);
WelcomeLabel2.Font:= WizardForm.WelcomeLabel2.Font
WelcomeLabel2.Font.Color:= clWhite;
WelcomeLabel2.Transparent:= True;
WelcomeLabel2.WordWrap:= true;
WelcomeLabel2.Caption:='Добро пожаловать в установку «Русификатора» ' + #13#10#13#10 + 'Cделайте резервную копию папки «l10n»' + #13#10#13#10 + 'Незабывайте посещать «vk.com/aion_us»' ;
WelcomeLabel2.Parent:= WizardForm.WelcomePage;


WizardForm.WizardSmallBitmapImage.SetBounds(ScaleX (0), ScaleY(0), WizardForm.MainPanel.Width, WizardForm.MainPanel.Height);

PageNameLabel:= TLabel.Create(WizardForm)
with WizardForm.PageNameLabel do
PageNameLabel.SetBounds(Left, Top, Width, Height);
PageNameLabel.Transparent:= True;
PageNameLabel.Font:= WizardForm.PageNameLabel.Font;
PageNameLabel.Font.Color:= clYellow; //цвет надписи
PageNameLabel.Parent:= WizardForm.MainPanel;

PageDescriptionLabel:= TLabel.Create(WizardForm)
with WizardForm.PageDescriptionLabel do
PageDescriptionLabel.SetBounds(Left, Top, Width, Height);
PageDescriptionLabel.Transparent:= True;
PageDescriptionLabel.Font:= WizardForm.PageDescriptionLabel.Font;
PageDescriptionLabel.Font.Color:= clYellow; //цвет надписи
PageDescriptionLabel.Parent:= WizardForm.MainPanel;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;

FinishedLabel:= TLabel.Create(WizardForm);
FinishedLabel.AutoSize:= False;
with WizardForm.FinishedLabel do
FinishedLabel.SetBounds(230,130,340,90);
FinishedLabel.Font:= WizardForm.FinishedLabel.Font
FinishedLabel.Font.Color:= clWhite;
FinishedLabel.Transparent:= True;
FinishedLabel.WordWrap:= true;
FinishedLabel.Caption:= WizardForm.FinishedLabel.Caption;
FinishedLabel.Parent:= WizardForm.FinishedPage

WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.FinishedHeadingLabel.Hide;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
FinishedLabel.Caption:='Русификатор успешно установлен' + #13#10#13#10#13#10#13#10 + 'Желаю Вам приятной игры и море фана';
PageNameLabel.Caption:='ВНИМАНИЕ';
PageDescriptionLabel.Caption:= 'Внимание: укажите вашу папку с игрой. Пример: D:\Aion';
WelcomeLabel2.Font.Name:='AsiaFontNHH-OutlineAllHinting.ttf';
WelcomeLabel2.Font.Size:= 8;
FinishedLabel.Font.Name:='AsiaFontNHH-OutlineAllHinting.ttf';
FinishedLabel.Font.Size:= 10;
end;


Последний раз редактировалось CkauNui, 16-06-2013 в 14:29.


Отправлено: 14:16, 16-06-2013 | #640



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход