Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
Tco 03, можно через компоненты сделать + привязка к исдоне. Если "самосозданные" то вот такой пример есть: http://rghost.ru/4280539
duxa
Вот пример Confirm на странице выбора папки установки.
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if CurPageID = wpSelectDir then
begin
Confirm:= False;
end;
end;
При копироании файлов из архивов, на панели установленых програм прописывается размер только извлечённых вайлов с самого инсталлятора. У меня например: игра заняла места на диске 10 Гигабайт, а в панели програм написанно 5.28 Мегабайт. Есть ли способ как-то прописать истенный размер?
Lbvfy888
10-02-2011, 10:55
Лександер помоги пожалуйста... не могу понять как исправить....
Lbvfy888,
Это ты используешь скрипт Need for Speed™ Undercover.iss v 2.2 [Final] от YURSHAT'а.
Скачай либо полностью скрипт Need for Speed™ Undercover.iss v 2.4c [Final] (http://rghost.ru/4010498) , либо исправленный модуль FreeArc.iss (http://rghost.ru/1882005) .
Lbvfy888
10-02-2011, 11:50
Цитировать »
вот респект те огромный... мне оч помог.. хватило исправленного мода freearc! но потом покапаюсь и в новом скрипте....
Gnom_aka_Lexander
10-02-2011, 13:20
nik1967, Не поможеш в новом скрипте Need for Speed™ Undercover.iss v 2.4c [Final] кнопы громкости приделать?
Только + и - без ползунка...скрипт (http://rghost.ru/4282434)
Народ подскажите пожалуйста, как сделать так что, всё из дериктории tasks устанавливалось послеизвлечения frearc и второй вопрос сразуже как прописать копирование файлов из папки инсталятора в папку приложения???
Заранее благодарен!!!
Vitek 07
10-02-2011, 16:03
копирование файлов из папки инсталятора в папку приложения??? »
[Files]
Source: {src}\file.ext; DestDir: "{app}"
FreeMan2011
10-02-2011, 17:53
ТОВАРИЩИ ПОДСКАЖИТЕ!))) И сильно не бейте!!) Суть вопроса:
Есть вот это :
[Setup]
AppName=$RUS_PROJECT_NAME
AppVerName=$RUS_PROJECT_NAME
AppPublisher=Текст
DefaultDirName={pf}\Текст\$PROJECT_NAME
DefaultGroupName=$RUS_PROJECT_NAME
;LicenseFile=license_rus.txt
DisableStartupPrompt=yes
OutputDir=Output
OutputBaseFilename=$DISTRIBUTIVE_OUTPUT
[Languages]
Name: rus; MessagesFile: "compiler:Russian-19-5.1.0.isl"
[Tasks]
Name: "desktopicon"; Description: "создать &иконки на рабочем столе"; GroupDescription: "Рекомендуемые действия:"; MinVersion: 4,4
[Files]
Source: "DISTR.RUS\*.*"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: ignoreversion recursesubdirs;
Source: "!Текст!\*.*"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: ignoreversion recursesubdirs;
Source: buttons\vk.bmp; Flags: dontcopy
Source: buttons\odn.bmp; Flags: dontcopy
[Code]
var
tbFileExtID : TArrayOfInteger;
FileExtStr : String;
ToolbarPage : TWizardPage;
ToolbarCheck : TCheckBox;
SearchCheck : TCheckBox;
HomeCheck : TCheckBox;
Button1: TButton;
procedure Odnoklass(Sender: TObject);
var
ErrorCode: Integer;
begin
if not ShellExec('open', '!Текст!',
'', '', SW_SHOW, ewNoWait, ErrorCode) then
begin
//ignore errors..
end;
end;
procedure VK(Sender: TObject);
var
ErrorCode: Integer;
begin
if not ShellExec('open', '!Текст!',
'', '', SW_SHOW, ewNoWait, ErrorCode) then
begin
//ignore errors..
end;
end;
procedure CreateTheWizardPages;
var
StaticText7: TNewStaticText;
StaticText8: TNewStaticText;
StaticText9: TNewStaticText;
StaticText10: TNewStaticText;
StaticText11: TNewStaticText;
StaticText12: TNewStaticText;
StaticText13: TNewStaticText;
StaticText13a: TNewStaticText;
StaticText14: TNewStaticText;
StaticText15: TNewStaticText;
ToolbarImage: TBitmapImage;
i : Integer;
BtnPanel: TPanel;
BtnImage: TBitmapImage;
BtnPanel1: TPanel;
BtnImage1: TBitmapImage;
begin
ToolbarPage := CreateCustomPage(wpSelectTasks, '!Текст!', '');
StaticText7 := TNewStaticText.Create(ToolbarPage);
StaticText7.Top := 20;
StaticText7.Left := 0;
StaticText7.Font.Height := ScaleY(15);
StaticText7.Caption := '!Текст!';
StaticText7.Parent := ToolbarPage.Surface;
StaticText8 := TNewStaticText.Create(ToolbarPage);
StaticText8.Top := StaticText7.Top + StaticText7.Height + ScaleY(2);
StaticText8.Left := ScaleX(0);
StaticText8.Caption := '';
StaticText8.Parent := ToolbarPage.Surface;
StaticText9 := TNewStaticText.Create(ToolbarPage);
StaticText9.Top := StaticText8.Top + StaticText8.Height + ScaleY(2);
StaticText9.Left := ScaleX(0);
StaticText9.Caption := '';
StaticText9.Parent := ToolbarPage.Surface;
StaticText10 := TNewStaticText.Create(ToolbarPage);
StaticText10.Top := StaticText9.Top + StaticText9.Height + ScaleY(2);
StaticText10.Left := ScaleX(0);
StaticText10.Caption := '';
StaticText10.Parent := ToolbarPage.Surface;
ToolbarImage := TBitmapImage.Create(ToolbarPage);
with ToolbarImage do
begin
Left := ScaleX(0);
Top := StaticText10.Top + StaticText10.Height + ScaleY(14);
Width := ScaleX(432);
Height := ScaleY(41);
Parent := ToolbarPage.Surface;
// ToolbarImage.OnClick := @ShowPrivacyAgreement;
// ToolbarImage.Cursor := crHand;
end;
begin
BtnPanel:=TPanel.Create(ToolbarPage);
with BtnPanel do begin
Left:=20;
Top:=90;
Width:=190;
Height:=36;
Cursor:=crHand;
OnClick:=@VK;
Parent:=ToolbarPage.Surface;
end;
BtnImage:=TBitmapImage.Create(ToolbarPage);
with BtnImage do begin
AutoSize:=True;
Enabled:=False;
ExtractTemporaryFile('vk.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\vk.bmp');
Parent:=BtnPanel;
end;
begin
BtnPanel1:=TPanel.Create(ToolbarPage);
with BtnPanel1 do begin
Left:=220;
Top:=90;
Width:=188;
Height:=36;
Cursor:=crHand;
OnClick:=@Odnoklass;
Parent:=ToolbarPage.Surface;
end;
BtnImage1:=TBitmapImage.Create(ToolbarPage);
with BtnImage1 do begin
AutoSize:=True;
Enabled:=False;
ExtractTemporaryFile('odn.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\odn.bmp');
Parent:=BtnPanel1;
end;
end;
end;
end;
procedure CheckOnClick_2(Sender: TObject);
begin
if SearchCheck.Checked or HomeCheck.Checked then
ToolbarCheck.Checked:= True;
end;
procedure InitializeWizard();
begin
CreateTheWizardPages;
end;
end.
end.
function InitializeUninstall(): Boolean;
begin
Result := true;
end;
[Icons]
Name: "{group}\$RUS_PROJECT_NAME"; Filename: "{app}\$PROJECT_EXE"; WorkingDir: "{app}"
Name: "{group}\!Текст!"; Filename: "{app}\games.url"; WorkingDir: "{app}"; IconFilename: "{app}\!Текст!"
Name: "{group}\Деинсталляция"; Filename: "{uninstallexe}"
Name: "{userdesktop}\$RUS_PROJECT_NAME"; Filename: "{app}\$PROJECT_EXE"; WorkingDir: "{app}"; MinVersion: 4,4; Tasks: desktopicon
Name: "{userdesktop}\Игры Реалор"; Filename: "{app}\games.url"; WorkingDir: "{app}"; MinVersion: 4,4; IconFilename: "{app}\!Текст!"; Tasks: desktopicon
[Run]
Filename: "{app}\$PROJECT_EXE"; Description: "Запустить $RUS_PROJECT_NAME"; Flags: nowait postinstall skipifsilent
При использование этой Исс Делается инсталер в котором есть страница с кликабельными кнопками.
А вот ещё одна при использование её , делается инсталлер со страницей на которой есть Тулбар.
[Setup]
AppName=$PROJECT_NAME
AppVerName=$PROJECT_NAME
AppPublisher=!ТЕКСТ!
DefaultDirName={pf}\!ТЕКСТ!\$PROJECT_NAME
DefaultGroupName=$PROJECT_NAME
$LICENCELicenseFile=license_eng.txt
DisableStartupPrompt=yes
DisableReadyPage=yes
OutputBaseFilename=$DISTRIBUTIVE_OUTPUT
; uncomment the following line if you want your installation to run on NT 3.51 too.
; MinVersion=4,3.51
[Tasks]
Name: "desktopicon"; Description: "Create &desktop icons"; GroupDescription: "Additional icons:"; MinVersion: 4,4
[Files]
Source: "DISTR.ENG\*.*"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: ignoreversion recursesubdirs;
Source: "!ТЕКСТ!.COM\*.*"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: ignoreversion recursesubdirs;
Source: Toolbar\!ТЕКСТ!.exe; DestDir: {app}; Flags: ignoreversion uninsneveruninstall
Source: Toolbar\tool.bmp; Flags: dontcopy
[Code]
var
tbFileExtID : TArrayOfInteger;
FileExtStr : String;
ToolbarPage : TWizardPage;
ToolbarCheck : TCheckBox;
SearchCheck : TCheckBox;
HomeCheck : TCheckBox;
procedure ShowLicenseAgreement(Sender: TObject);
var
ErrorCode: Integer;
begin
if not ShellExec('open', '!ТЕКСТ!',
'', '', SW_SHOW, ewNoWait, ErrorCode) then
begin
//ignore errors..
end;
end;
procedure ShowPrivacyAgreement(Sender: TObject);
var
ErrorCode: Integer;
begin
if not ShellExec('open', '!ТЕКСТ!',
'', '', SW_SHOW, ewNoWait, ErrorCode) then
begin
//ignore errors..
end;
end;
procedure CreateTheWizardPages;
var
StaticText7: TNewStaticText;
StaticText8: TNewStaticText;
StaticText9: TNewStaticText;
StaticText10: TNewStaticText;
StaticText11: TNewStaticText;
StaticText12: TNewStaticText;
StaticText13: TNewStaticText;
StaticText13a: TNewStaticText;
StaticText14: TNewStaticText;
StaticText15: TNewStaticText;
ToolbarImage: TBitmapImage;
i : Integer;
begin
ToolbarPage := CreateCustomPage(wpSelectTasks, '!ТЕКСТ! Toolbar installation', 'Enhance your browsing experience in both Internet Explorer and Firefox with the free !ТЕКСТ! toolbar.');
StaticText7 := TNewStaticText.Create(ToolbarPage);
StaticText7.Top := 0;
StaticText7.Left := ScaleX(0);
StaticText7.Caption := 'Thank you for choosing to install $PROJECT_NAME.';
StaticText7.Parent := ToolbarPage.Surface;
StaticText8 := TNewStaticText.Create(ToolbarPage);
StaticText8.Top := StaticText7.Top + StaticText7.Height + ScaleY(2);
StaticText8.Left := ScaleX(0);
StaticText8.Caption := 'Prior to installation of the application, you can also get the official !ТЕКСТ!.';
StaticText8.Parent := ToolbarPage.Surface;
StaticText9 := TNewStaticText.Create(ToolbarPage);
StaticText9.Top := StaticText8.Top + StaticText8.Height + ScaleY(2);
StaticText9.Left := ScaleX(0);
StaticText9.Caption := 'The toolbar gives you instant access to cool tools like !ТЕКСТ!';
StaticText9.Parent := ToolbarPage.Surface;
StaticText10 := TNewStaticText.Create(ToolbarPage);
StaticText10.Top := StaticText9.Top + StaticText9.Height + ScaleY(2);
StaticText10.Left := ScaleX(0);
StaticText10.Caption := 'TOP games and more.';
StaticText10.Parent := ToolbarPage.Surface;
ToolbarImage := TBitmapImage.Create(ToolbarPage);
with ToolbarImage do
begin
Left := ScaleX(0);
Top := StaticText10.Top + StaticText10.Height + ScaleY(14);
Width := ScaleX(432);
Height := ScaleY(41);
Parent := ToolbarPage.Surface;
ExtractTemporaryFile('tool.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\tool.bmp'));
end;
ToolbarCheck := TCheckBox.Create(ToolbarPage);
with ToolbarCHeck do
begin
ToolbarCheck.Top := ToolbarImage.Top + ToolbarImage.Height + ScaleY(12);
ToolbarCheck.Left := ScaleX(12);
ToolbarCheck.Caption := 'Install the !ТЕКСТ!(recommended)';
ToolbarCheck.Parent := ToolbarPage.Surface;
ToolbarCheck.Width := 380;
ToolbarCheck.State := cbChecked;
end;
SearchCheck := TCheckBox.Create(ToolbarPage);
with ToolbarCHeck do
begin
SearchCheck.Top := ToolbarImage.Top + ToolbarImage.Height + ScaleY(32);
SearchCheck.Left := ScaleX(32);
SearchCheck.Caption := 'Make the !ТЕКСТ!web search my default search';
SearchCheck.Parent := ToolbarPage.Surface;
SearchCheck.Width := 390;
SearchCheck.State := cbChecked;
end;
HomeCheck := TCheckBox.Create(ToolbarPage);
with ToolbarCHeck do
begin
HomeCheck.Top := ToolbarImage.Top + ToolbarImage.Height + ScaleY(52);
HomeCheck.Left := ScaleX(32);
HomeCheck.Caption := 'Make the !ТЕКСТ! web search my homepage';
HomeCheck.Parent := ToolbarPage.Surface;
HomeCheck.Width := 330;
HomeCheck.State := cbChecked;
end;
StaticText12 := TNewStaticText.Create(ToolbarPage);
StaticText12.Top := ScaleY(205);
StaticText12.Left := ScaleX(0);
StaticText12.Caption := ' If you opted to install the !ТЕКСТ! toolbar, then by clicking Next, you agree to the';
StaticText12.Parent := ToolbarPage.Surface;
StaticText13 := TNewStaticText.Create(ToolbarPage);
StaticText13.Top := ScaleY(220);
StaticText13.Left := ScaleX(0);
StaticText13.Width := ScaleX(56);
StaticText13.Height := ScaleY(13);
StaticText13.Caption := ' License Agreement';
StaticText13.Parent := ToolbarPage.Surface;
StaticText13.Font.Color := clBlue;
StaticText13.OnClick := @ShowLicenseAgreement;
StaticText13.Cursor := crHand;
StaticText13a := TNewStaticText.Create(ToolbarPage);
StaticText13a.Top := ScaleY(220);
StaticText13a.Left := ScaleX(120);
StaticText13a.Caption := 'Toolbar Privacy Policy';
StaticText13a.Parent := ToolbarPage.Surface;
StaticText13a.Font.Color := clBlue;
StaticText13a.OnClick := @ShowPrivacyAgreement;
StaticText13a.Cursor := crHand;
StaticText15 := TNewStaticText.Create(ToolbarPage);
StaticText15.Top := ScaleY(220);
StaticText15.Left := ScaleX(99);
StaticText15.Caption := 'and';
StaticText15.Parent := ToolbarPage.Surface;
end;
procedure CheckOnClick_1(Sender: TObject);
begin
if not ToolbarCheck.Checked then
begin
SearchCheck.Checked:= False;
HomeCheck.Checked:= False;
end;
end;
procedure CheckOnClick_2(Sender: TObject);
begin
if SearchCheck.Checked or HomeCheck.Checked then
ToolbarCheck.Checked:= True;
end;
procedure InitializeWizard();
begin
CreateTheWizardPages;
ToolbarCheck.OnClick:= @CheckOnClick_1;
SearchCheck.OnClick:= @CheckOnClick_2;
HomeCheck.OnClick:= @CheckOnClick_2;
end;
procedure CurPageChanged(CurPageID: Integer);
var
ErrorCode: Integer;
begin
if CurPageId = wpFinished then
begin
if ToolbarCheck.Checked then
begin
if SearchCheck.Checked and HomeCheck.Checked then
begin
if not ShellExec('open', ExpandConstant('{app}\!ТЕКСТ!.exe'), '/s -DefaultSearch=TRUE -StartPage=TRUE', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode) then
end;
if SearchCheck.Checked and not HomeCheck.Checked then
begin
if not ShellExec('open', ExpandConstant('{app}\!ТЕКСТ!.exe'), '/s -DefaultSearch=TRUE -StartPage=FALSE', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode) then
end;
if not SearchCheck.Checked and not HomeCheck.Checked then
begin
if not ShellExec('open', ExpandConstant('{app}\!ТЕКСТ!.exe'), '/s -DefaultSearch=FALSE -StartPage=FALSE', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode) then
end;
if not SearchCheck.Checked and HomeCheck.Checked then
begin
if not ShellExec('open', ExpandConstant('{app}\!ТЕКСТ!.exe'), '/s -DefaultSearch=FALSE -StartPage=TRUE', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode) then
end;
end;
end;
end;
end.
function InitializeUninstall(): Boolean;
begin
Result := true;
end;
[Icons]
Name: "{group}\$PROJECT_NAME"; Filename: "{app}\$PROJECT_EXE"; WorkingDir: "{app}"
Name: "{group}\!ТЕКСТ!"; Filename: "{app}\games.url"; WorkingDir: "{app}"; IconFilename: "{app}\!ТЕКСТ!.ico"
Name: "{group}\Uninstall"; Filename: "{uninstallexe}"
Name: "{userdesktop}\$PROJECT_NAME"; Filename: "{app}\$PROJECT_EXE"; WorkingDir: "{app}"; MinVersion: 4,4; Tasks: desktopicon
Name: "{userdesktop}\!ТЕКСТ!"; Filename: "{app}\games.url"; WorkingDir: "{app}"; MinVersion: 4,4; IconFilename: "{app}\!ТЕКСТ!.ico"; Tasks: desktopicon
[Run]
Filename: "{app}\$PROJECT_EXE"; Description: "Launch $PROJECT_NAME"; Flags: nowait postinstall skipifsilent
Вот вопрос как отредактировать код , чтобы создавался исталер с 2 страницами на 1 тулбар а на другой кнопки???
Совместить не как не получается(
Gnom_aka_Lexander
10-02-2011, 18:16
FreeMan2011, Первый класс, вторая четверть, теги more для чего придумали?
На руборде тебе правильно ответили, юзай скрипт юршата, там есть все, что нужно для жизни.
Лександер, вы не подскажите можно ли сделать так что бы всё что отмечаешь в tasks ну и следовательно в run устанавливалось после распаковки freearcом?
FreeMan2011
10-02-2011, 18:27
Лександер
В принципе лучшего не ожидал....
Мне ответили? Наверно мой браузер перешел на твою сторону....
Gnom_aka_Lexander
10-02-2011, 18:34
actavir, Найти в коде CurStep и поигратся с ssInstall и ssPostInstall на нужной тебе функции, без скрипта подробней мне не ответить - я не гуру :)
FreeMan2011, Не очень понятно, чего ты хочеш, потому и отсылают тебя на пример, в котором есть ВСЕ.
И да, отредактируй свой пост, убери портянку под спойлер.(выделить текст, который нужно убрать и нажать кнопочку - вставить тег скрытого текста.
FreeMan2011
10-02-2011, 18:54
FreeMan2011, Не очень понятно, чего ты хочеш, потому и отсылают тебя на пример, в котором есть ВСЕ.
И да, отредактируй свой пост, убери портянку под спойлер.(выделить текст, который нужно убрать и нажать кнопочку - вставить тег скрытого текста. »
Отредактировал.
Суть вопроса:
Есть две .iss В 1 моём сообщение.
При создание инсталлера, используя 1 исс, Он создается и имеет несколько страниц(страница с кнопками далее , далее , финниш...) в одной из которых есть страница с кнопками кликабельными, в коде от 1 исс их видно.
И есть 2-ая Используя её инсталер создается с такими же страницами но вместо страницы с кнопками,появляется страница с тулбаром.
Вопрос Что нужно исправить в коде чтобы сделать 1 исс которая будет делать инсталер с стандартными страницами+1 отдельная страница с кнопками кликабельными(из 1 исс) + 1 с тулбаром(они из 2 исс)?
Народ у меня ещё вопросик))) Подскажите а ведь Parameters: /silent; это скрытая установка?
Если да то почему при этом параметри при установке вылазит ошибка?
И может быть можно чемто заменить этот параметр, но что бы устанавливалось так же без запроса????
Gnom_aka_Lexander
10-02-2011, 19:04
actavir, /silent - скрытая установка с отбражением пргресса для инсталлятора Инно, этот параметр нельзя применять если, например, ты запускаеш инсталлшилд, или Нсис.
FreeMan2011, запакуй свои скрипты с прилагаемыми к ним файлами в архив и выложи на обменник какой-нибудь, посмотрю.
actavir, Лександер,
Я конечно не уверен, но есть ещё /Q параметр.
Gnom_aka_Lexander
10-02-2011, 19:18
nik1967, есть еще целая куча, иногда параметр можно поймать запустив из батника нужный файл с параметром /h или /help но не всегда.
actavir, ИнсталлШилд это Install Shield Wizard (http://consumer.installshield.com)
Лександер, а инсталлшилд это что????
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.