PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

duxa
10-02-2011, 07:09
Tco 03, можно через компоненты сделать + привязка к исдоне. Если "самосозданные" то вот такой пример есть: http://rghost.ru/4280539

Tco 03
10-02-2011, 07:21
duxa
Вот пример Confirm на странице выбора папки установки.

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if CurPageID = wpSelectDir then
begin
Confirm:= False;
end;
end;

Tco 03
10-02-2011, 09:07
При копироании файлов из архивов, на панели установленых програм прописывается размер только извлечённых вайлов с самого инсталлятора. У меня например: игра заняла места на диске 10 Гигабайт, а в панели програм написанно 5.28 Мегабайт. Есть ли способ как-то прописать истенный размер?

Lbvfy888
10-02-2011, 10:55
Лександер помоги пожалуйста... не могу понять как исправить....

nik1967
10-02-2011, 11:22
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)

actavir
10-02-2011, 15:56
Народ подскажите пожалуйста, как сделать так что, всё из дериктории 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 для чего придумали?
На руборде тебе правильно ответили, юзай скрипт юршата, там есть все, что нужно для жизни.

actavir
10-02-2011, 18:27
Лександер, вы не подскажите можно ли сделать так что бы всё что отмечаешь в 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 исс)?

actavir
10-02-2011, 18:58
Народ у меня ещё вопросик))) Подскажите а ведь Parameters: /silent; это скрытая установка?
Если да то почему при этом параметри при установке вылазит ошибка?
И может быть можно чемто заменить этот параметр, но что бы устанавливалось так же без запроса????

Gnom_aka_Lexander
10-02-2011, 19:04
actavir, /silent - скрытая установка с отбражением пргресса для инсталлятора Инно, этот параметр нельзя применять если, например, ты запускаеш инсталлшилд, или Нсис.

FreeMan2011, запакуй свои скрипты с прилагаемыми к ним файлами в архив и выложи на обменник какой-нибудь, посмотрю.

nik1967
10-02-2011, 19:13
actavir, Лександер,
Я конечно не уверен, но есть ещё /Q параметр.

Gnom_aka_Lexander
10-02-2011, 19:18
nik1967, есть еще целая куча, иногда параметр можно поймать запустив из батника нужный файл с параметром /h или /help но не всегда.

actavir, ИнсталлШилд это Install Shield Wizard (http://consumer.installshield.com)

actavir
10-02-2011, 19:25
Лександер, а инсталлшилд это что????




© OSzone.net 2001-2012