Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]
diman_21Ru
27-12-2013, 12:56
на 5.5.1 наботает все окей спасибо
Ivan_009
28-12-2013, 22:09
Как создать страницу выбора программной группы не получается никак вот скрипт...
[Setup]
AppName={#GameName}
AppVerName={#GameName} {#Version}
AppPublisher={#Publisher}
DefaultDirName={pf}\{#GameName}
DefaultGroupName={#GameName}
OutputDir=Setup
[Languages]
Name: Rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: InstallFiles\*; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system;
[code]
#include "Modules\botva2.iss"
var
Work1,Work2,Work3,Work4,Work5,Work6,WizardImage: Longint;
//StatusPanel: TPanel;
CaptionLabel,StLabel: TLabel;
//---Skin
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall delayload setuponly';
procedure LoadSkinU(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
//---Skin
//---Splash
//procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
//---Splash
function InitializeSetup(): Boolean;
begin
//---Botva2
if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
//---Botva2
//---Skin
ExtractTemporaryFile('Skin.skin');
LoadSkin(ExpandConstant('{tmp}\Skin.skin'), '');
//---Skin
Result:= true
end;
procedure InitializeWizard;
begin
with WizardForm do begin
Width:=ScaleX(796);
Height:=ScaleY(622);
Position:=poScreenCenter;
CancelButton.SetBounds(ScaleX(691), ScaleY(570), ScaleX(95), ScaleY(20));
NextButton.SetBounds(ScaleX(590), ScaleY(570), ScaleX(95), ScaleY(20));
BackButton.SetBounds(ScaleX(489), ScaleY(570), ScaleX(95), ScaleY(20));
InnerNotebook.Hide;
OuterNotebook.Hide;
Bevel.Hide;
Color:=$000000;
with WizardForm.DirEdit do
begin
Left := ScaleX(4);
Top := ScaleY(568);
Width := ScaleX(483);
Height := ScaleY(20);
Parent:=WizardForm;
end;
with WizardForm.GroupEdit do
begin
Left := ScaleX(4);
Top := ScaleY(568);
Width := ScaleX(483);
Height := ScaleY(20);
Parent:=WizardForm;
end;
//---Splash
//ExtractTemporaryFile('Splash.png');
//ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
//---Splash
//---Botva2
Work1:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\1.png'),0,0,790,593,True,True);
Work2:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\2.png'),0,0,790,593,True,True);
Work3:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\3.png'),0,0,790,593,True,True);
Work4:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\4.png'),0,0,790,593,True,True);
Work5:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\5.png'),0,0,790,593,True,True);
Work6:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\6.png'),0,0,790,593,True,True);
WizardImage:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage.jpg'),1,15,788,481,True,Tru e);
ImgSetVisibility(Work1, False);
ImgSetVisibility(Work2, False);
ImgSetVisibility(Work3, False);
ImgSetVisibility(Work4, False);
ImgSetVisibility(Work5, False);
ImgSetVisibility(Work6, False);
//---Botva2
end;
ImgApplyChanges(WizardForm.Handle);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
ImgSetVisibility(Work1, False);
ImgSetVisibility(Work2, False);
ImgSetVisibility(Work3, False);
ImgSetVisibility(Work4, False);
ImgSetVisibility(Work5, False);
ImgSetVisibility(Work6, False);
WizardForm.DirEdit.Hide;
WizardForm.GroupEdit.Hide;
case CurPageID of
wpWelcome:
begin
ImgSetVisibility(work1,True);
end;
wpSelectDir:
begin
ImgSetVisibility(work2,True);
WizardForm.DirEdit.Show;
end;
wpSelectProgramGroup:
begin
ImgSetVisibility(work3,True);
WizardForm.GroupEdit.Show;
end;
wpInstalling:
begin
ImgSetVisibility(work4,True);
end;
wpFinished:
begin
ImgSetVisibility(work5,True);
end;
end;
ImgApplyChanges(WizardForm.Handle);
end;
//---Skin
function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'),
ExpandConstant('{tmp}\isskin.dll'), False);
FileCopy(ExpandConstant('{app}\Skin.skin'),
ExpandConstant('{tmp}\Skin.skin'), False); LoadSkinU(ExpandConstant('{tmp}\Skin.skin'), '');
Result:=True;
end;
//---Skin
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
Cancel:=True;
end;
procedure DeinitializeSetup();
begin
//---Skin
UnloadSkin();
//---Skin
//---Botva2
gdipShutdown;
//---Botva2
end;
//---Skin
procedure DeinitializeUninstall();
begin
UnloadSkinU();
end;
//---Skin
Ivan_009
#define GameName "Dead Space 3"
#define Version "Dead Space 3"
#define MyAppExeName "MyProg.exe"
[Setup]
AppName={#GameName}
AppVerName={#GameName} {#Version}
DefaultDirName={pf}{#GameName}
DefaultGroupName={#GameName}
OutputDir=Setup
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: InstallFiles\*; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system;
[Icons]
Name: "{group}\{#GameName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#GameName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#GameName}"; Filename: "{app}\{#MyAppExeName}";
[code]
#include "Modules\botva2.iss"
var
Work1,Work2,Work3,Work4,Work5,Work6,WizardImage: Longint;
//StatusPanel: TPanel;
CaptionLabel,StLabel: TLabel;
//---Skin
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall delayload setuponly';
procedure LoadSkinU(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
//---Skin
//---Splash
//procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
//---Splash
function InitializeSetup(): Boolean;
begin
//---Botva2
if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
//---Botva2
//---Skin
ExtractTemporaryFile('Skin.skin');
LoadSkin(ExpandConstant('{tmp}\Skin.skin'), '');
//---Skin
Result:= true
end;
procedure InitializeWizard;
begin
with WizardForm do begin
Width:=ScaleX(796);
Height:=ScaleY(622);
Position:=poScreenCenter;
CancelButton.SetBounds(ScaleX(691), ScaleY(570), ScaleX(95), ScaleY(20));
NextButton.SetBounds(ScaleX(590), ScaleY(570), ScaleX(95), ScaleY(20));
BackButton.SetBounds(ScaleX(489), ScaleY(570), ScaleX(95), ScaleY(20));
InnerNotebook.Hide;
OuterNotebook.Hide;
Bevel.Hide;
Color:=$000000;
//---Splash
//ExtractTemporaryFile('Splash.png');
//ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
//---Splash
//---Botva2
Work1:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\1.png'),0,0,790,593,True,True);
Work2:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\2.png'),0,0,790,593,True,True);
Work3:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\3.png'),0,0,790,593,True,True);
Work4:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\4.png'),0,0,790,593,True,True);
Work5:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\5.png'),0,0,790,593,True,True);
Work6:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\6.png'),0,0,790,593,True,True);
WizardImage:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage.jpg'),1,15,788,481,True,Tru e);
ImgApplyChanges(WizardForm.Handle);
with WizardForm.DirEdit do
begin
Left := ScaleX(4);
Top := ScaleY(568);
Width := ScaleX(483);
Height := ScaleY(20);
Parent:=WizardForm;
end;
with WizardForm.GroupEdit do
begin
Left := ScaleX(4);
Top := ScaleY(568);
Width := ScaleX(483);
Height := ScaleY(20);
Parent:=WizardForm;
end;
with WizardForm.ProgressGauge do
begin
Left := ScaleX(10);
Top := ScaleY(220);
Width := ScaleX(390);
Parent:= WizardForm;
end;
end;
end;
procedure ShowComponents(CurPageID: Integer);
begin
WizardForm.DirEdit.Hide;
WizardForm.GroupEdit.Hide;
WizardForm.ProgressGauge.Hide;
case CurPageID of
wpWelcome:
begin
ImgSetVisibility(work1,True);
end;
wpSelectDir:
begin
ImgSetVisibility(work2,True);
WizardForm.DirEdit.Show;
end;
wpSelectProgramGroup:
begin
ImgSetVisibility(work3,True);
WizardForm.GroupEdit.Show;
end;
wpInstalling:
begin
ImgSetVisibility(work4,True);
WizardForm.ProgressGauge.show;
end;
wpFinished:
begin
ImgSetVisibility(work5,True);
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
ImgSetVisibility(Work1, False);
ImgSetVisibility(Work2, False);
ImgSetVisibility(Work3, False);
ImgSetVisibility(Work4, False);
ImgSetVisibility(Work5, False);
ImgSetVisibility(Work6, False);
ShowComponents(CurPageID);
ImgApplyChanges(WizardForm.Handle);
end;
//---Skin
function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'),
ExpandConstant('{tmp}\isskin.dll'), False);
FileCopy(ExpandConstant('{app}\Skin.skin'),
ExpandConstant('{tmp}\Skin.skin'), False); LoadSkinU(ExpandConstant('{tmp}\Skin.skin'), '');
Result:=True;
end;
//---Skin
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
Cancel:=True;
end;
procedure DeinitializeSetup();
begin
//---Skin
UnloadSkin();
//---Skin
//---Botva2
gdipShutdown;
//---Botva2
end;
//---Skin
procedure DeinitializeUninstall();
begin
UnloadSkinU();
end;
//---Skin
diman_21Ru
29-12-2013, 11:55
Всем привет как можно убрать эту страницу , зарание спасибо :)
diman_21Ru
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = SystemPage.ID) then
Result:= True;
end;
diman_21Ru
29-12-2013, 15:19
спасибо большое
diman_21Ru
31-12-2013, 12:55
Всем Привет кто знает самый простой способ добавление Музыки в скрипт,зарание спасибо
Karbid87
01-01-2014, 14:19
Помогите пожалуйста. нужен самый простой скрипт, в котором страница выбора компонентов, страница распаковки и страница завершения. Архивы будут запакованы FreeArc.
Идея такая: запускаем инсталл, выбираем один из двух компонентов (у компонентов будет один архив общий, а второй разный), самостоятельная распаковка во временную папку, страница завершения, автоматический запуск .exe из временной папки(можно на странице завершения сделать не убираемую галочку "Запуск установки").
И еще чтобы инсталл не создавал никаких папок в меню Пуск, ярлыков, и не было у него деинсталлятора и значка в Панели управления-Программы и компоненты.
Если кто напишет такое, буду очень благодарен.
diman_21Ru
02-01-2014, 14:02
Всем Привет как в начале уменьшить размер текста а то полное название не влезает , спасибо зарание :)
diman_21Ru, Найди WelcomeLabel1 и там регулируй » Left, Top, Width, Height
Например
[Code]
procedure InitializeWizard();
begin
WizardForm.WelcomeLabel1.Left := ScaleX(104);
WizardForm.WelcomeLabel1.Top := ScaleY(40);
WizardForm.WelcomeLabel1.Width := ScaleX(389);
end;
diman_21Ru
02-01-2014, 19:04
о спасибо тебе огромное
diman_21Ru
02-01-2014, 19:29
В одном месте все же остался шрифт прежний , не понятно он где настраивается (
о спасибо »Не обязательно плодить сообщения: Как я могу отметить сообщение полезным? (http://forum.oszone.net/faq.php?faq=vb_board_usage#faq_thanks)
В одном месте все же остался шрифт прежний »Если я правильно понимаю, то тебе нужно смотреть в сторону Main Panel.
Пример:
[Code]
procedure InitializeWizard();
begin
WizardForm.PageDescriptionLabel.Font.Size := 8;
WizardForm.PageDescriptionLabel.Font.Name := 'Courier New';
WizardForm.PageNameLabel.Font.Size := 8;
WizardForm.PageNameLabel.Font.Name := 'Courier New';
end;
Иначе, я не могу угадать что и где у тебя находится.
Ищи по надписи "Мод-Пак от..."
Если "Мод-Пак от..." задано в пользовательских сообщениях т.е [CustomMessages], то смотри там {cm:....}
Например если у тебя примерно так
[CustomMessages]
namelabelmymod=Мод-Пак от diman_21Ru...
то ищи {cm:namelabelmymod}
А далее в коде найди примерно такие значения: Font.Name и Font.Size.
Font.Name := 'Courier New'; - Это шрифт
Font.Size := 8; - Это размер шрифта
Вместо Font.Size может быть Font.Height
Font.Height := -11;.
diman_21Ru
02-01-2014, 21:40
спасибо получилось
diman_21Ru
03-01-2014, 22:14
Парни если кто знает как можно музыку добавить простым способом , подскажите , или направьте на страницу где была ета тема просто искал не нашел , зарание спасибо :)
или направьте на страницу »Здесь (http://forum.ru-board.com/topic.cgi?forum=5&topic=46338&start=0&limit=1&m=4#1) в низу страницы модуль BASS v 1.1 от Shegorat глянь (Последнюю версию 1.4 погугли или у Shegorat (http://forum.ru-board.com/profile.cgi?action=show&member=Shegorat)-а попроси).
простым способом »Ниже прикрепил простой пример.
Напишу ответ здесь, на заданный вопрос из этой темы (http://forum.oszone.net/thread-148707.html)
Как сделать чтобы после того как извлекло с установщика файлы, назначить моему файлу Tront.exe - запуск от имени администратора ? »
[Registry]
Root: HKCU; SubKey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: string; ValueName: {app}\Tront.exe; ValueData: RUNASADMIN; Flags: uninsdeletevalue uninsdeletekeyifempty
Nordek, Благодарю.
А такой вопрос, у кого Windows 8, возможно только для них сделать запуск с совместимостью Windows XP Пакет обновления 3
и такой вопрос, как запустить сам setup.exe от имени администратора, тк я подумал если его запускать не от администратора то данная фича -
[Registry]
Root: HKCU; SubKey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: string; ValueName: {app}\Tront.exe; ValueData: RUNASADMIN; Flags: uninsdeletevalue uninsdeletekeyifempty
не будет работать ?
сделать запуск с совместимостью Windows XP Пакет обновления 3 »С запросом запуска из под администратора и с совместимостью Windows XP Service Pack 3:
[Registry]
Root: HKCU; SubKey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: string; ValueName: {app}\Tront.exe; ValueData: WINXPSP3 RUNASADMIN; Flags: uninsdeletevalue uninsdeletekeyifempty
Если нужна только совместимость, то сотри "RUNASADMIN".
Nordek, спасибо понятно, а сам инстоллятор возможно сделать: чтобы запускался от имени администратора ? или нет ?
а и совместимость с WINXPSP3 - мне нужно только для тех у кого Windows 7/8
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.