Войти

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


Страниц : 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

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

vint56
28-12-2013, 22:36
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
Всем привет как можно убрать эту страницу , зарание спасибо :)

vint56
29-12-2013, 13:36
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
Всем Привет как в начале уменьшить размер текста а то полное название не влезает , спасибо зарание :)

Nordek
02-01-2014, 17:58
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
В одном месте все же остался шрифт прежний , не понятно он где настраивается (

Nordek
02-01-2014, 20:04
о спасибо »Не обязательно плодить сообщения: Как я могу отметить сообщение полезным? (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
Парни если кто знает как можно музыку добавить простым способом , подскажите , или направьте на страницу где была ета тема просто искал не нашел , зарание спасибо :)

Nordek
03-01-2014, 22:47
или направьте на страницу »Здесь (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)-а попроси).

простым способом »Ниже прикрепил простой пример.

Nordek
04-01-2014, 23:12
Напишу ответ здесь, на заданный вопрос из этой темы (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

qwea234
04-01-2014, 23:37
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

не будет работать ?

Nordek
04-01-2014, 23:58
сделать запуск с совместимостью 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".

qwea234
05-01-2014, 08:39
Nordek, спасибо понятно, а сам инстоллятор возможно сделать: чтобы запускался от имени администратора ? или нет ?

а и совместимость с WINXPSP3 - мне нужно только для тех у кого Windows 7/8




© OSzone.net 2001-2012