Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: R3Pa4eK
Дата сообщения: 10.05.2012 07:57
repacksman
Ты задрал уже выкладывать сюда свои недоскрипты с ссылкой на свой говносайт! Тебе тут не рады, признай это и отвали!
Автор: kuriozin
Дата сообщения: 10.05.2012 20:03
Подскажите, что прописать, чтобы после установки , название ветки в реестре установленного продукта был без "_is1"?
Автор: Gnom3
Дата сообщения: 10.05.2012 20:36
kuriozin
эта приставка пишется, в качестве опознавательного знака, так сказать - _is1 = Inno Setup, первая установка бод этим хардид. Теоретически, если запустишь еще одну установку под этим ид и выберешь другую папку, то получишь уже _is2 - тоесть, теоретически должно быть именно так. а избавиться - никак не выйдет. можно, конечно, создавать этот ключ заново без приставке, но тогда сама инно его не увидит.
Автор: kuriozin
Дата сообщения: 10.05.2012 23:21
Gnom3
Ну , и на этом спасибо, хоть буду знать на будущее.
Автор: Dizair
Дата сообщения: 11.05.2012 11:06
Здравствуйте!
Помогите установить скрипт, что бы в углу инсталятора было кликабельное лого ( http://forum.ru-board.com/topic.cgi?forum=5&topic=35146&start=1299&limit=1&m=3#1 )

Мой скрипт:

[more]

Код:
#define MyAppName "Mini Ninjas"
#define NeedSize 4078
#define AfterSize 5096
#define NeedMem 512

;#define records
;#define PrecompInside
#define SrepInside
;#define facompress
;#define precomp "0.4"
#define unrar
;#define XDelta
#define PackZIP

#define icon "Files/icon.ico"
#define FontT "Comic Sans MS"
//Èçìåíåíèå öâåòà òåêñòà//
#define Color "$b2b2b2"
#define Music

[Setup]
AppName=Mini Ninjas
AppVersion=1.0
AppPublisher=Toshiro
DefaultDirName={pf}/Mini Ninjas
DefaultGroupName=R.G. M.T.R/Mini Ninjas
OutputBaseFilename=setup
Compression=lzma/ultra64
SolidCompression=true
SetupIconFile={#icon}
DisableReadyPage=yes
InternalCompressLevel=ultra64

[Files]
////////////////////////////Áèáèîòåêè (íóæíû äëÿ ðàáîòû èíñòàëëÿòîðà)!//////////////////////////////////////////:
Source: dll\botva2.dll; DestDir: {tmp}; Flags: dontcopy
Source: dll\b2p.dll; DestDir: {tmp}; Flags: dontcopy
Source: dll\CallbackCtrl.dll; DestDir: {tmp}; Flags: dontcopy
Source: dll\Tools.dll; DestDir: {tmp}; Flags: dontcopy
////////////////////////////Ôàéëû èçîáðàæåíèé/////////////////////////////////////////:
Source: Files\fon.jpg; DestDir: {tmp}; Flags: dontcopy
Source: Files\next.png; DestDir: {tmp}; Flags: dontcopy
Source: Files\back.png; DestDir: {tmp}; Flags: dontcopy
Source: Files\browse.png; DestDir: {tmp}; Flags: dontcopy
#ifdef Music
Source: Music\*; DestDir: {tmp}; Flags: dontcopy
#endif
Source: Files\Edit.png; DestDir: {tmp}; Flags: dontcopy
Source: Files\work.png; DestDir: {tmp}; Flags: dontcopy
Source: Files\CheckBox.png; DestDir: {tmp}; Flags: dontcopy
Source: Files\pb.png; DestDir: {tmp}; Flags: dontcopy
Source: Files\pbback.png; DestDir: {tmp}; Flags: dontcopy

Source: Files\icon.ico; DestDir: {app}

[Icons]
Name: "{group}\Èãðàòü"; Filename: "{app}\ninja.exe"; IconFilename: "{app}\icon.ico"; Check: CheckError
Name: "{userdesktop}\Mini Ninjas"; Filename: "{app}\ninja.exe"; WorkingDir: "{app}\"; Comment: "RePack by Òîøèðî" ; Check: CheckError

[Tasks]
Name: DPO; Description: Äîïîëíèòåëüíîå ïðîãðàìíîå îáåñïå÷åíèå:
Name: DPO/VC; Description: Óñòàíîâèòü Microsoft Visual C++ 2005 Redist

[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; WorkingDir: {src}; Flags: waituntilterminated; Check: DirectX and CheckError
Filename: {src}\Redist\al.exe; WorkingDir: {src}; Flags: waituntilterminated;
Filename: {src}\Redist\vcredist_x86.exe; WorkingDir: {src}; Parameters: /Q; Flags: waituntilterminated; Check: VC and not IsWin64 and CheckError
;Filename: {src}\Redist\vcredist_x64.exe; WorkingDir: {src}\Redist\; Parameters: /Q; Flags: waituntilterminated; Check: VC and IsWin64 and CheckError
;Filename: {src}\Resource\voices.bin; WorkingDir: {app}; Parameters: -x -y -s2 -d.; StatusMsg: Èäåò ðàñïàêîâêà äàííûõ, æäåì...; Flags: runasoriginaluser

[UninstallDelete]
Name: {app}\*.*; Type: filesandordirs

[Code]
const
A1='À';
Z1='ß';
A2='à';
Z2='ÿ';
X1='¸';
X2='¨';

type
TPBProc = function (h:hWnd;Msg,wParam,lParam:Longint):Longint;
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
var
IsCustomFontInstalled: boolean;
FontName: string;
fon: Longint;
bwork, dir, group, work, work1, work2, work3, work4, work5, work6: Longint;
WerInctall1, WerInstall2, DesktopLabel,DesktopLabel1, DesktopLabel2, DPOLabel, DirectXLabel, VCLabel, SelectTasks, MainLabel, ReadyLabel1, ReadyLabel2, ReadyLabel3, WelcomeLabel1, WelcomeLabel2, SelectDirPage1, SelectDirPage2, SelectProgramGroupPage1, SelectProgramGroupPage2, NoIconsLabel: TLabel;
DPOCheck, DesktopCheck, DirectXCheck, VCCheck, NoIconsCheck, CancelBtn, MinBtn, CancelBtn, MusicButton, hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, hCancelUninstBtn: HWND;
WFButtonFont: TFont;
NeedSpaceLabel, AfterSpaceLabel,FreeSpaceLabel,DirEditLabel, GroupEditLabel: TLabel;
FreeMB, TotalMB: Cardinal;
SizeStr: AnsiString;
SizeInt, AfterInt, Edit, Space, Ready: Longint;
SymbolNumber: Longint;
TimerID: LongWord;
CurrentPicture:integer;
PicList: TStringlist;
//****************//Ïîäêëþ÷åíèå ìîäóëåé//*********************//
#include "Modules\botva2.iss"
#include "Modules\progressbar.iss"
#include "Modules\CustomMessages.iss"
#include "Modules\ISDone.iss"
#ifdef Music
#include "Modules\BASS_Module.iss"
#endif
//****************//Ïîäêëþ÷åíèå ìîäóëåé//*********************//
function InitializeSetup:boolean;
begin
if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
Result:=True;
end;
function ReleaseCapture(): Longint; external 'ReleaseCapture@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function SetLayeredWindowAttributes(hwnd: hWnd; crKey: TColor; bAlpha: byte; dwFlags: DWORD): Boolean; external 'SetLayeredWindowAttributes@user32.dll stdcall';
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';
function CreateNewFont(Height, Width: Integer; thickness: DWORD; FontName: PChar): HWND; external 'CreateNewFont@files:Tools.dll stdcall';
function AddFontResource(FileName: PAnsiChar): Integer; external 'AddFontResourceA@gdi32.dll stdcall';
function RemoveFontResource(FileName: PAnsiChar): BOOL; external 'RemoveFontResourceA@gdi32.dll stdcall';
procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0)
end;
//************************************************[Íà÷àëî - Çàãðóçêà èçîáðàæåíèé]*************************************************************//
procedure CreateWizardImage;
begin
with WizardForm do begin
ClientWidth:=ScaleX(667);
ClientHeight:=ScaleY(437);
InnerNotebook.Hide;
OuterNotebook.Hide;
Bevel.Hide;
Center;
end;
fon:=ImgLoad(WizardForm.Handle, ExpandConstant('fon.jpg'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight,True,True);
work:= ImgLoad(WizardForm.Handle,ExpandConstant('work.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
Edit:=ImgLoad(WizardForm.Handle,ExpandConstant('Edit.png'),ScaleX(133), ScaleY(350),ScaleX(328),ScaleY(24),True,True);
ImgApplyChanges(WizardForm.Handle);
end;
//************************************************[Êîíåö - Çàãðóçêà èçîáðàæåíèé]*************************************************************//

//************************************************ [Íà÷àëî - Òåêñòóðû êíîïîê] ***************************************************//
procedure MinimizeBtnClick(h:HWND);
begin
GetMinimizeAnimation;
SetMinimizeAnimation(true);
SendMessage(WizardForm.Handle,$112,61472,0);
end;

procedure CancelBtnClick(h:HWND);
begin
WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
end;

procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
end;
with WizardForm.NextButton do begin
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
end;
with WizardForm.CancelButton do begin
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
end;
BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));
end;

procedure WizardFormBtnClick(hBtn:HWND);
var
Btn:TButton;
begin
case hBtn of
hCancelBtn: Btn:=WizardForm.CancelButton;
hNextBtn: Btn:=WizardForm.NextButton;
hBackBtn: Btn:=WizardForm.BackButton;
hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;
hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton;
end;
Btn.OnClick(Btn);
SetStateNewButtons;
BtnRefresh(hBtn);
end;

function NoIcons: Boolean;
begin
Result:= BtnGetEnabled(hGroupBrowseBtn);
end;

function Redist: Boolean;
begin
Result:= BtnGetChecked(DPOCheck);
end;

function DirectX: Boolean;
begin
Result:= BtnGetChecked(DirectXCheck);
end;

function VC: Boolean;
begin
Result:= BtnGetChecked(VCCheck);
end;

procedure NoIconsClick(hBtn:HWND);
var
Check:boolean;
begin
Check:=BtnGetChecked(hBtn);
BtnSetEnabled(hGroupBrowseBtn, Check);
WizardForm.GroupEdit.Enabled:=Check;
end;

procedure NoIconsLabelClick(Sender:TObject);
begin
BtnSetChecked(NoIconsCheck, not BtnGetChecked(NoIconsCheck));
NoIconsClick(NoIconsCheck);
end;

procedure DesktopClick(hBtn:HWND);
begin

end;
procedure DirChange(Sender: TObject);
var
CurrentDisk: String;
begin
CurrentDisk:=ExtractFileDrive(WizardForm.DirEdit.Text);
DirEditLabel.Caption:=MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);
end;
procedure DesktopLabelClick(Sender:TObject);
begin
BtnSetChecked(DesktopCheck, not BtnGetChecked(DesktopCheck));
DesktopClick(DesktopCheck);
end;

procedure DirectXClick(hBtn:HWND);
var
Check:boolean;
begin
Check:=BtnGetChecked(hBtn);
if (BtnGetChecked(VCCheck)=false) and (Check = false) then begin BtnSetChecked(DPOCheck, false); end;
if (BtnGetChecked(VCCheck)=true) and (Check = true) then begin BtnSetChecked(DPOCheck, true); end;
if (BtnGetChecked(VCCheck)=true) and (Check = false) then begin BtnSetChecked(DPOCheck, true); end;
if (BtnGetChecked(VCCheck)=false) and (Check = true) then begin BtnSetChecked(DPOCheck, true); end;
end;

procedure VCClick(hBtn:HWND);
var
Check:boolean;
begin
Check:=BtnGetChecked(hBtn);
if (BtnGetChecked(DirectXCheck)=false) and (Check = false) then begin BtnSetChecked(DPOCheck, false); end;
if (BtnGetChecked(DirectXCheck)=true) and (Check = true) then begin BtnSetChecked(DPOCheck, true); end;
if (BtnGetChecked(DirectXCheck)=true) and (Check = false) then begin BtnSetChecked(DPOCheck, true); end;
if (BtnGetChecked(DirectXCheck)=false) and (Check = true) then begin BtnSetChecked(DPOCheck, true); end;
end;

procedure DPOClick(hBtn:HWND);
var
Check:boolean;
begin
Check:=BtnGetChecked(hBtn);
if BtnGetChecked(VCCheck) = false and BtnGetChecked(DirectXCheck) = false then BtnSetChecked(DPOCheck, false);
if BtnGetChecked(DPOCheck) then BtnSetChecked(DirectXCheck, True) else BtnSetChecked(DirectXCheck, False);
if BtnGetChecked(DPOCheck) then BtnSetChecked(VCCheck, True) else BtnSetChecked(VCCheck, False);
end;

procedure ButtonsTextures;
begin
WFButtonFont:=TFont.Create;
WFButtonFont.Name:='Georgia';
WFButtonFont.Size:=10;
WFButtonFont.Style:= [fsBold];

with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,ScaleX(590), ScaleY(355), ScaleX(64), ScaleY(36),ExpandConstant('{tmp}\next.png'),0,False);
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));

Width:=0;
Height:=0;
end;

with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,ScaleX(13), ScaleY(355), ScaleX(64), ScaleY(36),ExpandConstant('{tmp}\back.png'),0,False);
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFontColor(hBackBtn,clblack,clblack,clblack,clblack);
Width:=0;
Height:=0;
end;

with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,Left+166,Top+116,Width+31,Height+16,ExpandConstant('{tmp}\back.png'),18,False);
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFontColor(hCancelBtn,clblack,clblack,clblack,clblack);
Width:=0;
Height:=0;
end;

with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle,ScaleX(465), ScaleY(343),ScaleX(79), ScaleY(39),ExpandConstant('{tmp}\browse.png'),0,False);
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hDirBrowseBtn,{#Color},{#Color},{#Color},{#Color});
Width:=0;
Height:=0;
end;

with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle,ScaleX(465), ScaleY(343),ScaleX(79), ScaleY(39),ExpandConstant('{tmp}\browse.png'),0,False);
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hGroupBrowseBtn,{#Color},{#Color},{#Color},{#Color});
Width:=0;
Height:=0;
end;

NoIconsCheck:=BtnCreate(WizardForm.Handle,ScaleX(128),ScaleY(380),ScaleX(25),ScaleY(25), ExpandConstant('CheckBox.png'),8,True);
BtnSetEvent(NoIconsCheck,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));
BtnSetChecked(NoIconsCheck, true);

DPOCheck:=BtnCreate(WizardForm.Handle, ScaleX(128), ScaleY(350), ScaleX(25), ScaleY(25), ExpandConstant('CheckBox.png'),8, True);
BtnSetChecked(DPOCheck, true);
BtnSetEvent(DPOCheck, BtnClickEventID, WrapBtnCallback(@DPOClick, 1));

DirectXCheck:=BtnCreate(WizardForm.Handle, ScaleX(160), ScaleY(225), ScaleX(20), ScaleY(20), ExpandConstant('CheckBox.png'), 8, True);
BtnSetChecked(DirectXCheck, true);
BtnSetEvent(DirectXCheck,BtnClickEventID,WrapBtnCallback(@DirectXClick,1));

VCCheck:=BtnCreate(WizardForm.Handle, ScaleX(160), ScaleY(245), ScaleX(20), ScaleY(20), ExpandConstant('CheckBox.png'), 8, True);
BtnSetChecked(VCCheck, true);
BtnSetEvent(VCCheck,BtnClickEventID,WrapBtnCallback(@VCClick,1));

DesktopCheck:=BtnCreate(WizardForm.Handle, ScaleX(128), ScaleY(380), ScaleX(25), ScaleY(25), ExpandConstant('CheckBox.png'), 8, True);
BtnSetChecked(DesktopCheck, true);
BtnSetEvent(DesktopCheck,BtnClickEventID,WrapBtnCallback(@DesktopClick,1));

end;
//************************************************ [Êîíåö - Òåêñòóðû êíîïîê] ***************************************************//
//************************************************[Íà÷àëî - Ïðîâåðêà ìåñòà íà äèñêå]*************************************************************//

procedure GroupChange (Sender: TObject);
begin
GroupEditLabel.Caption := MinimizePathName(WizardForm.GroupEdit.Text, GroupEditLabel.Font, GroupEditLabel.Width);
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;
end;

//************************************************[Êîíåö - Ïðîâåðêà ìåñòà íà äèñêå]*************************************************************//
//************************************************[Íà÷àëî - Êîìïîíåíòû ñòðàííèö]*************************************************************//
procedure LogoOnClick(Sender: TObject);
var ResCode: Integer;
begin
ShellExec('', 'http://www.forum.ru-board.com', '' , '', SW_SHOW, ewNoWait, ResCode)
end;

procedure InitializerWizard();
var
BtnPanel: TPanel;
BtnImage: TBitmapImage;
begin
ExtractTemporaryFile('Button.bmp')

BtnPanel:=TPanel.Create(WizardForm)
with BtnPanel do begin
Left:=20
Top:=325
Width:=132
Height:=27
Cursor:=crHand
OnClick:=@logoOnClick
Parent:=WizardForm
end
BtnImage:=TBitmapImage.Create(WizardForm)
with BtnImage do begin
AutoSize:=True;
Enabled:=False;
Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Button.bmp')
Parent:=BtnPanel
end
end;

procedure CreateWizard;
begin
///////////////////////WelcomePage////////////////////////
WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
Left:= ScaleX(250);
Top:= ScaleY(17);
Width:= ScaleX(350);
Height:= ScaleY(65);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Comic Sans MS';
Font.Size:= 10;
Font.Color:={#Color};
Font.Style := [fsBold];
Alignment := taCenter;
Parent:= WizardForm;
Caption:= ExpandConstant('{cm:Welcome1}')
end;

WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
Left:= ScaleX(110);
Top:= ScaleY(310);;
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Comic Sans MS';
Font.Size:= 11
Alignment := taCenter;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:={#Color};
Parent:= WizardForm;
Caption:= ExpandConstant(' {cm:Welcome2} {cm:Welcome3}');
end;
///////////////////////SelectDirPage////////////////////////
SelectDirPage1:=TLabel.Create(WizardForm);
with SelectDirPage1 do
begin
Left:= ScaleX(250);
Top:= ScaleY(17);
Width:= ScaleX(350);
Height:= ScaleY(65);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Comic Sans MS';
Font.Size:= 10;
Font.Color:={#Color};
Font.Style := [fsBold];
Alignment := taCenter;
Parent:= WizardForm;
Caption:= ExpandConstant('{cm:SelectDir1}');
end;

SelectDirPage2:=TLabel.Create(WizardForm);
with SelectDirPage2 do
begin
Left:= ScaleX(110);
Top:= ScaleY(310);;
Width:= ScaleX(450);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Comic Sans MS';
Font.Size:= 10
Alignment := taCenter;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:={#Color};
Parent:= WizardForm;
end;

DirEditLabel := TLabel.Create(WizardForm);
with DirEditLabel do begin
AutoSize:=False;
SetBounds(ScaleX(135), ScaleY(353), ScaleX(446), ScaleY(30));
WordWrap:= True;
ShowAccelChar := False;
Transparent:=True;
Font.Name:= 'Comic Sans MS'
Font.Size:= 10;
Font.Color:={#Color};
Font.Style:=[fsBold];
Caption := 'Âûáåðèòå ïàïêó äëÿ óñòàíîâêè, íàæàâ «Îáçîð»';
Parent := WizardForm;
end;

///////////////////////SelectProgrammGroupPage////////////////////////
SelectProgramGroupPage1:=TLabel.Create(WizardForm);
with SelectProgramGroupPage1 do
begin
Left:= ScaleX(250);
Top:= ScaleY(17);
Width:= ScaleX(350);
Height:= ScaleY(65);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Comic Sans MS';
Font.Size:= 10;
Font.Color:={#Color};
Font.Style := [fsBold];
Alignment := taCenter;
Parent:= WizardForm;
Caption:= ExpandConstant('{cm:SelectGroup1}');
end;

NoIconsLabel:=TLabel.Create(WizardForm);
with NoIconsLabel do
begin
Top:= ScaleY(384);
Left:= ScaleX(155);
Width:= ScaleX(300);
Height:= ScaleY(30);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Comic Sans MS';
Font.Size:= 10
Font.Style := [fsBold];
Font.Color:={#Color};
Transparent:= true;
Parent:= WizardForm;
OnClick:=@NoIconsLabelClick;
Caption:= ExpandConstant('{cm:IconsCheck}');
end;

GroupEditLabel := TLabel.Create(WizardForm);
with GroupEditLabel do begin
AutoSize:=False;
SetBounds(ScaleX(135), ScaleY(353), ScaleX(446), ScaleY(30));
WordWrap:= True;
ShowAccelChar := False;
Transparent:=True;
Font.Name:= 'Comic Sans MS'
Font.Size:= 10;
Font.Color:={#Color};
Font.Style:=[fsBold];
Caption := 'Âûáåðèòå ïàïêó â ìåíþ ïóñê, íàæàâ «Îáçîð»';
Parent := WizardForm;
end;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text;
WizardForm.GroupEdit.OnChange := @GroupChange;
/////////////////////////////SelectTasksPage/////////////////////////////

DPOLabel:=TLabel.Create(WizardForm);
with DPOLabel do
begin
Top:= ScaleY(353);
Left:= ScaleX(155);
Width:= ScaleX(300);
Height:= ScaleY(30);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Comic Sans MS';
Font.Size:= 10
Font.Style := [fsBold];
Font.Color:={#Color};
Transparent:= true;
Parent:= WizardForm;
Caption:= ExpandConstant('{cm:DPO}');
end;

SelectTasks:=TLabel.Create(WizardForm);
with SelectTasks do
begin
Left:= ScaleX(60);
Top:= ScaleY(310);;
Width:= ScaleX(550);
Height:= ScaleY(200);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Comic Sans MS';
Font.Size:= 10
Alignment := taCenter;
Font.Style := [fsBold];
Transparent:= true;
Font.Color:={#Color};
Parent:= WizardForm;
Caption:= ExpandConstant('{cm:SelectTasks}');
end;

DesktopLabel:=TLabel.Create(WizardForm);
with DesktopLabel do
begin
Top:= ScaleY(383);
Left:= ScaleX(155);
Width:= ScaleX(300);
Height:= ScaleY(30);
AutoSize:= false;
WordWrap:= true;
Font.Name:= 'Comic Sans MS';
Font.Size:= 10
Font.Style := [fsBold];
Font.Color:={#Color};
Transparent:= true;
Parent:= WizardForm;
Caption:= ExpandConstant('Ñîçäàòü çíà÷îê íà ðàáî÷åì ñòîëå');
end;

LabelStatus := TLabel.Create(WizardForm);
with LabelStatus do begin
Left:= ScaleX(250);
Top:= ScaleY(17);
Width:= ScaleX(350);
Height:= ScaleY(65);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Comic Sans mS';
Font.Size:= 10;
Font.Color:={#Color};
Font.Style := [fsBold];
Alignment := taCenter;
Parent:= WizardForm;
Caption:= 'Ïîæàëóéñòà, ïîäîæäèòå, ïîêà «{#MyAppName}» óñòàíîâèòñÿ íà Âàø êîìïüþòåð.';
Hide;
end;

WerInstall2:=TLabel.Create(WizardForm);
with WerInstall2 do
begin
Left:= ScaleX(250);
Top:= ScaleY(17);
Width:= ScaleX(350);
Height:= ScaleY(65);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Comic Sans MS';
Font.Size:= 10;
Font.Color:={#Color};
Font.Style := [fsBold];
Alignment := taCenter;
Parent:= WizardForm;
Caption:= ExpandConstant('Êàêèå äîïîëíèòåëüíûå çàäà÷è íåîáõîäèìî âûïîëíèòü?');
end;
end;

//************************************************[Êîíåö - Êîìïîíåíòû ñòðàííèö]*************************************************************//
//************************************************[Íà÷àëî ðóññîôîáèÿ]*************************************************************//
function NextButtonClick(CurPageID: Integer): Boolean;
var
i: Longint;
c: Char;
begin
Result := True;
if CurPageID = wpSelectDir then begin
for i:=1 to length(WizardForm.DirEdit.text) do begin
c:=WizardForm.DirEdit.text[i];
if (c>=A1)and(c<=Z1) or (c>=A2)and(c<=Z2) or (c=X1) or (c=X2) then begin
MsgBox( '&#194; &#239;&#243;&#242;&#232; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232; &#239;&#240;&#232;&#241;&#243;&#242;&#241;&#242;&#226;&#243;&#254;&#242; &#240;&#243;&#241;&#241;&#234;&#232;&#229; &#225;&#243;&#234;&#226;&#251;, &#247;&#242;&#238; &#237;&#229;&#228;&#238;&#239;&#243;&#241;&#242;&#232;&#236;&#238;'#13#13'&#207;&#238;&#230;&#224;&#235;&#243;&#233;&#241;&#242;&#224;, &#239;&#238;&#226;&#242;&#238;&#240;&#232;&#242;&#229; &#226;&#226;&#238;&#228;.', mbError, mb_Ok);
Result := False;
break;
exit;
end;
end;
end;
end;
//************************************************[&#202;&#238;&#237;&#229;&#246; &#240;&#243;&#241;&#241;&#238;&#244;&#238;&#225;&#232;&#255;]*************************************************************//

procedure InitializeWizard;
begin
CreateWizardImage;
CreateWizard;
ButtonsTextures;
#ifdef Music
begin
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('MusicButton.png');
ExtractTemporaryFile('Music.mp3');
BASS_Init(ExpandConstant('{tmp}\Music.mp3')) //&#199;&#224;&#239;&#243;&#241;&#234;&#224;&#229;&#236; &#236;&#243;&#231;&#251;&#234;&#243;
BASS_CreateOnOffButton(ExpandConstant('{tmp}\MusicButton.png'), 645, 50, 20, 20, 4) //&#209;&#238;&#231;&#228;&#224;&#229;&#236; &#234;&#237;&#238;&#239;&#234;&#243; &#226;&#234;&#235;/&#226;&#251;&#234;&#235;
end;
#endif
end;
procedure Hide;
begin
ImgSetVisibility(Edit,False);
ImgSetVisibility(Space,False);
ImgSetVisibility(Ready,False);
WerInstall2.Hide;
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
WizardForm.DirEdit.Hide;
WizardForm.GroupEdit.Hide;
DirEditLabel.Hide;
GroupEditLabel.Hide;
BtnSetVisibility(hDirBrowseBtn, false);
BtnSetVisibility(hGroupBrowseBtn, false);
ImgSetVisibility(dir, false);
ImgSetVisibility(group, false);
SelectDirPage1.Hide;
SelectDirPage2.Hide;
SelectProgramGroupPage1.Hide;
BtnSetVisibility(NoIconsCheck, false);
NoIconsLabel.Hide;
DPOLabel.Hide;
SelectTasks.Hide;
DesktopLabel.Hide;
BtnSetVisibility(DPOCheck, false);
WizardForm.ReadyMemo.Hide;
BtnSetVisibility(DesktopCheck, false);
BtnSetVisibility(DirectXCheck, false);
BtnSetVisibility(VCCheck, false);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
SetStateNewButtons;
Hide;
case CurPageID of
wpWelcome:
begin
WerInstall2.Hide;
ImgSetVisibility(bwork, false);
WelcomeLabel1.Show;
WelcomeLabel2.Show;
ImgSetVisibility(work,True);
end;
wpSelectDir:
begin
ImgSetVisibility(work1,True)
ImgSetVisibility(bwork, true);
SelectDirPage2.Show;
SelectDirPage1.Show;
ImgSetVisibility(dir, true);
BtnSetVisibility(hDirBrowseBtn, true);
WizardForm.DirEdit.Show;
DirEditLabel.Show;
ImgSetVisibility(Edit,True);
ImgSetVisibility(Space,True);
end;
wpSelectProgramGroup:
begin
ImgSetVisibility(Edit,True);
NoIconsLabel.Show;
BtnSetVisibility(NoIconsCheck, True);
GroupEditLabel.Show;
SelectDirPage2.Show;
SelectProgramGroupPage1.Show;
ImgSetVisibility(group, true);
WizardForm.GroupEdit.Show;
BtnSetVisibility(hGroupBrowseBtn, true);
ImgSetVisibility(work2,True);
end;
wpSelectTasks:
begin
WerInstall2.Show;
BtnSetVisibility(DesktopCheck, true);
if BtnGetChecked(VCCheck)=false then BtnSetChecked(DPOCheck, false);
if BtnGetChecked(VCCheck)=true then BtnSetChecked(DPOCheck, true);
if BtnGetChecked(DirectXCheck)=true then BtnSetChecked(DPOCheck, true);
if BtnGetChecked(DirectXCheck)=false then BtnSetChecked(DPOCheck, false);
SelectTasks.Show;
DesktopLabel.Show;
BtnSetVisibility(DPOCheck, true);
DPOLabel.Show;
ImgSetVisibility(work3,True);
end;
wpInstalling:
begin
LabelStatus.Show;
ImgSetVisibility(work5,True);
end;
wpFinished:
begin
LabelStatus.Hide;
WerInstall2.Hide;
ImgSetVisibility(bwork, false);
WelcomeLabel1.Caption:=ExpandConstant('{cm:Finished1}');
WelcomeLabel2.Caption:=ExpandConstant('{cm:Finished2}');
WelcomeLabel1.Show;
WelcomeLabel2.Show;
if not ISDoneError then ImgSetVisibility(work6,True);
end;
end;

if (CurPageID = wpFinished) and ISDoneError then
begin
WelcomeLabel1.show
WelcomeLabel2.show
WelcomeLabel1.Caption:=ExpandConstant('&#211;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#224; &#232;&#227;&#240;&#251; «Jagged Alliance: Back in Action» &#237;&#229; &#231;&#224;&#226;&#229;&#240;&#248;&#229;&#237;&#224;.');
WelcomeLabel2.Caption:='&#194;&#238; &#226;&#240;&#229;&#236;&#255; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232; &#239;&#240;&#238;&#232;&#231;&#238;&#248;&#235;&#224; &#238;&#248;&#232;&#225;&#234;&#224;, &#239;&#238;&#230;&#224;&#235;&#243;&#233;&#241;&#242;&#224; &#238;&#242;&#234;&#235;&#254;&#247;&#232;&#242;&#229; &#241;&#242;&#238;&#240;&#238;&#237;&#237;&#232;&#229; &#239;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#251; &#232; &#239;&#238;&#226;&#242;&#238;&#240;&#232;&#242;&#229; &#239;&#238;&#239;&#251;&#242;&#234;&#243; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232;. &#205;&#224;&#230;&#236;&#232;&#242;&#229; «&#199;&#224;&#226;&#229;&#240;&#248;&#232;&#242;&#252;», &#247;&#242;&#238;&#225;&#251; &#226;&#251;&#233;&#242;&#232; &#232;&#231; &#239;&#240;&#238;&#227;&#240;&#224;&#236;&#236;&#251; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#234;&#232;.'
end;
WizardForm.ProgressGauge.Hide;
ImgApplyChanges(WizardForm.Handle);
end;

procedure AllCancel;
begin
SetWindowLong(WizardForm.ProgressGauge.Handle,-4,PBOldProc);
ImgPBDelete(NewPB);
ImgPBDelete(NewPB2);
ImgApplyChanges(WizardForm.Handle);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
ISDoneExtract(CurStep);
case CurStep of
ssInstall: begin
ImgApplyChanges(WizardForm.Handle);
PBOldProc:=SetWindowLong(WizardForm.ProgressGauge.Handle,-4,CallBackProc(@PBProc,4));
end;
ssPostInstall: AllCancel;
end;
end;

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

procedure DeinitializeSetup;
begin
gdipShutDown;
#ifdef Music
begin
BASS_DeInit; //&#206;&#241;&#226;&#238;&#225;&#238;&#230;&#228;&#224;&#229;&#236; &#239;&#240;&#238;&#246;&#229;&#241;&#241;
gdipShutdown
end;
#endif
end;
Автор: innonewbie
Дата сообщения: 11.05.2012 17:17
Dizair, чего-то у меня твой скрипт отображается карякозябрами. Выложил бы с файлами - так удобней проверять работоспособность.
Автор: Dizair
Дата сообщения: 11.05.2012 17:25
Вот тут скрипт: http://rghost.ru/38027124
Автор: innonewbie
Дата сообщения: 11.05.2012 18:02
Dizair, вот пробуй: http://rghost.ru/38027752; Добавил лого через ботву, но проверить на работоспособность не смог, т.к. у меня твой скрипт не компилится (модулей не хватает). Так что, если не будет работать - пиши в личку, чтоб форум не засорять, ну или может кто-нибудь ещё поможет
Автор: Dizair
Дата сообщения: 12.05.2012 12:39
innonewbie
не работает

Добавлено:
Подскажите, а как убрать окно. Окно, в котором отображается установка.

Автор: Dizair
Дата сообщения: 13.05.2012 09:58
Никто не поможет?
Автор: log1stable
Дата сообщения: 13.05.2012 16:13
Допустим, пользователь в графе "О себе..." (которая вписывается в .ini в {app}) вводит текст символов на 50-100. Если он забыл поменять раскладку, то может нажать кнопку, которая в соседнем окне "переводит" текст. Типа так:


Код:
procedure ButtonEngRusClick(Sender: TObject);
var j: integer;
begin
MemoOut.Lines.Text:=MemoIn.Lines.Text;
for J := 1 to Length(MemoIn.Lines.Text) do
If MemoIn.Lines.Text[j]='q' then MemoOut.Lines.Text[j]:='й';
If MemoIn.Lines.Text[j]='w' then MemoOut.Lines.Text[j]:='ц';
If MemoIn.Lines.Text[j]='e' then MemoOut.Lines.Text[j]:='у';
end;
Автор: Shegorat
Дата сообщения: 13.05.2012 16:40
Dizair 13:39 12-05-2012
Цитата:
Подскажите, а как убрать окно. Окно, в котором отображается установка.

Это не окно, это border формы. Чтобы убрать добавь в процедуру InitializeWizard строку

Код: WizardForm.BorderStyle:= bsNone;
Автор: log1stable
Дата сообщения: 13.05.2012 17:04
Shegorat, благодарю! Не знал этого факта о Memo.
Автор: Dizair
Дата сообщения: 13.05.2012 17:04
Shegorat
Вот спасибо! Я прописывал просто:

Код:
BorderStyle:= bsNone;
Автор: Gnom3
Дата сообщения: 13.05.2012 18:59

Цитата:
А надо было оказывается в начало добавить WizardForm

нет. Нужно было добавить имя формы, у которой редактируешь стиль рамки.
В данном случае - да он называется WizardForm. Для деинсталлятора - форма называется UninstallProgressForm. Для своей формы - называется так, как сам назовешь.
Автор: log1stable
Дата сообщения: 13.05.2012 20:09
Dizair, допустим, все элементы, которые изначально есть в инсталляторе имеют форму WizardForm.
WizardForm.NextButton - Кнопка "Далее"
WizardForm.WelcomeLabel1 - Текст на странице приветсвия "Добро пожаловать на установку"
WizardForm.ProgressGauge - Прогрессбар на странице установки.
Автор: Dizair
Дата сообщения: 14.05.2012 05:21
Спасибо за разъяснения. Благодарю )

Добавлено:
А как назначить на свою кнопку функцию «свернуть»?
Автор: nik1967
Дата сообщения: 14.05.2012 11:59

Цитата:
А как назначить на свою кнопку функцию «свернуть»?


Код: procedure MinimizeBtnClick(Sender: TObject);
begin
SendMessage(WizardForm.Handle,$0112,61472,0);
end;
Автор: Dizair
Дата сообщения: 14.05.2012 12:29
nik1967
Благодарю!)
Автор: MOD_TEC
Дата сообщения: 15.05.2012 18:15
Как сделать так, чтобы при успешной установке на финишной странице загружалась одна картинка а при ошибке другая.Дело в том, что я использую на каждой странице разную картинку через bmp. Распаковка у меня через ISDone. Подскажите пожалуйста...
Автор: MOD_TEC
Дата сообщения: 16.05.2012 13:34
Подскажите для чего эта функция нужна ли она в слайдшоу...function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall';
Автор: sjwrec
Дата сообщения: 16.05.2012 20:30
Всем привет! У меня вопрос, можно ли поверх видео окна (MCI) сделать надписи (Label) и кнопки?

Я просто хотел сделать видео в Авторуне, поверх видео были бы кнопки "Играть", "Удалить" и.тд.
Помогите пожалуйста.
Автор: Gnom3
Дата сообщения: 17.05.2012 07:58
sjwrec
нельзя. хотя... IsPicture я писал как каз ради этого именно.
Автор: sjwrec
Дата сообщения: 17.05.2012 08:47
Gnom3
Спасибо что откликнулись, посмотрю ваш пример. Если не поможет. Попробую с Flash Video по экспериментировать.
Автор: sjwrec
Дата сообщения: 17.05.2012 11:24
Gnom3
В вашем примере всё работает, а в моей Ауторун форме - не хочет, пишет:

Runtime Error (at 179:6041): Could not call proc.

[more]
// [ВЫБОР МЕДИА РЕЖИМА ДЛЯ АВТОРУНА]
#ifdef MediaModul

#ifdef PlaySFX
// Звуки кнопок
#define PlayAutorunSFX
#endif

#ifdef PlayMP3
// Фоновая музыка MP3
//#define PlayAutorunMusic
#endif

#endif

// [БЕГУЩАЯ СТРОКА]
//#define PlayRunString

[Files]
Source: AUTORUN\autorun.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy
#ifdef PlayAutorunSFX
Source: MEDIA\LClick.wav; Flags: dontcopy
Source: MEDIA\Enter.wav; Flags: dontcopy
#endif

Source: AUTORUN\IsPicture_for_all.dll; Flags: dontcopy
Source: MEDIA\Video.avi; Flags: dontcopy

[_Code]

procedure Initialize(AhWnd,BhWnd:hWnd);external 'Initialize@{tmp}\IsPicture_for_all.dll stdcall delayload';
procedure XvidVideo(fn:String;Seth:string);external 'XvidVideo@{tmp}\IsPicture_for_all.dll stdcall delayload';
procedure Deinitialize;external 'Deinitialize@{tmp}\IsPicture_for_all.dll stdcall delayload';

var
AutoRun, AutoRunForm: TSetupForm;
//Image: TBitmapImage;
PlayButton, InstallButton, SupportButton, ReadmeButton, WebButton, ExitButton, UninstallButton, DirectxButtton: TButton; // Здесь регистрация всех кнопок
ResultCode: Integer;
ContinueInstall: boolean;
InstallLocation: String;

#ifdef PlayRunString
RunString: TLabel;
RunStringTimer: TTimer;
str: string;

// ---------- Начало Обработка бегущей строки ------------//
procedure OnRunString(Sender: TObject); // Тайминг бегущей строки
begin
str:= RunString.Caption;
RunString.Caption:= Copy(str, 2, Length(str) - 1) + Copy(str, 1, 1);
end;
// ---------- Конец Обработка бегущей строки ------------//
#endif

#ifdef PlayAutorunSFX
procedure MouseEnter2(Sender: TObject);
begin
sndPlaySound(ExpandConstant('{tmp}\Enter.wav'),$0001);
end;
#endif

// ---------- Начало Действия кнопок------------//
procedure PlayButtonClick(Sender: TObject); // Действие "Играть"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1','InstallLocation', InstallLocation) then
begin
Exec(ExpandConstant('{reg:HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1,InstallLocation|}') + '\{#ExeName}', '', ExpandConstant('{reg:HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1,InstallLocation|}'), SW_SHOWNORMAL,ewNoWait,ResultCode);
ContinueInstall:=False;
AutoRun.Close;
//Deinitialize;
end
end;

procedure UninstallButtonClick(Sender: TObject); // Действие "Удалить игру"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1','InstallLocation', InstallLocation) then
begin
Exec(ExpandConstant('{reg:HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1,InstallLocation|}') + '\unins000.exe', '', '', SW_SHOWNORMAL,ewNoWait,ResultCode);
ContinueInstall:=False;
AutoRun.Close;
//Deinitialize;
end
end;

procedure InstallButtonClick(Sender: TObject); // Действие "Установить"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
// Проверяем установлена ли игра и если "Установлена" то предлагаем переустановку.
if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1','InstallLocation', InstallLocation) then
case MsgBox('Игра "{#SetupSetting("AppName")}" уже установлена.'#13'Хотите переустановить?', mbInformation, MB_YESNO)
// Нажата ДА (Запустить установку)
of IDYES:
begin
#ifdef PlayAutorunMusic
mciSendString('close Music','',0,0);
#endif
ContinueInstall:=True;
AutoRun.Close;
//Deinitialize;
end
// Нажата НЕТ (Возврат из сообщения назад в Авторун)
IDNO:
begin
end
end
// Если игра не установлена, то просто запустить установку.
else
begin
#ifdef PlayAutorunMusic
mciSendString('close Music','',0,0);
#endif
ContinueInstall:=True;
AutoRun.Close;
//Deinitialize;
end;
end;

procedure SupportButtonClick(Sender: TObject); // Действие "Руководство"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
shellexec('open', ExpandConstant('{src}\Manual.pdf'), '', '',SW_SHOW, ewnowait, ResultCode)
end;

procedure ReadmeButtonClick(Sender: TObject); // Действие "ReadMe"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
ShellExec('open', ExpandConstant('{src}\readme.txt'),'','', SW_SHOW, ewNoWait, ResultCode)
end;

procedure WebButtonClick(Sender: TObject); // Действие "Прохождение"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
ShellExec('open', ExpandConstant('{src}\Solution.txt'),'','', SW_SHOW, ewNoWait, ResultCode)
end;

procedure ExitButtonClick(Sender: TObject); // Действие "Выход"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
Sleep(1200); // Чтоб озвучка кнопки завершилась до выхода.
ContinueInstall:=False;
AutoRun.Close;
//Deinitialize;
end;

procedure DirectxButtonClick(Sender: TObject); // Действие "DirectX"
begin
#ifdef PlayAutorunSFX
sndPlaySound(ExpandConstant('{tmp}\LClick.wav'),$0001);
#endif
Exec(ExpandConstant('{src}\DirectX\dxsetup.exe'), '', '', SW_SHOW,ewNoWait,ResultCode)
end;
// ---------- Конец Действия кнопок ------------//

// ---------- Начало Форма AutoRun + вставка картинки ------------//
function AutoRunExec: boolean;
begin
ContinueInstall:=False;
AutoRun := CreateCustomForm;
with AutoRun do begin
Left := 498;
Top := 75;
Width := 800;
Height := 600;
BorderIcons := [];
BorderStyle:=bsSingle
Font.Color := clWindowText;
Font.Name:= 'Arial';
Font.Style := [fsBold, fsItalic];
Position := poScreenCenter;
Caption:='Autorun - {#SetupSetting("AppName")}';
ShowHint:= True;
Hint:='Наведите указатель мыши на кнопку, чтобы увидеть её описание';
end;

AutoRunForm := CreateCustomForm;
with AutoRunForm do begin
Left := 0;
Top := 0;
Width := 0;
Height := 0;
BorderIcons := [];
BorderStyle:=bsSingle

// Вставка картинки

//ExtractTemporaryFile('autorun.bmp');
//Image:=TBitmapImage.Create(AutoRun);
//Image.Left:=0;
//Image.Top:=0;
//Image.Width:=800;
//Image.Height:=600;
//Image.Stretch:=True;
//Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\autorun.bmp'));
//Image.Parent:=AutoRun;
end;
// ---------- Конец Форма AutoRun + вставка картинки ------------//

#ifdef PlayRunString
// ---------- Начало Бегущая строка ------------//
RunString:= TLabel.Create(AutoRun);
with RunString do begin
Parent:= AutoRun;
Left:= 220;
Top:= 10;
Width:= 550;
Height:= 25;
AutoSize:= False;
Transparent:=True;
Caption:= ' "Psi-Ops", РАЗУМ - ЭТО САМОЕ МОЩНОЕ ОРУЖИЕ. Вы - правительственный агент, обладающий рядом сверхъестественных способностей, что позволяет оказывать психологическое воздействие на противника. Используйте имеющиеся у вас пси-навыки, чтобы противостоять террористическому движению...';
Font.Color:=clYellow; // возможные значения clWhite; clBlack; clYellow; , Ну или другие...
Font.Size:= 14;
end;

RunStringTimer:= TTimer.Create(AutoRun);
with RunStringTimer do begin
Interval:= 230;
OnTimer:= @OnRunString;
end;
// ---------- Конец Бегущая строка ------------//
#endif
// ---------- Начало Создание кнопок------------//
//PlayButton (Играть)
PlayButton:= TButton.Create(AutoRun);
with PlayButton do begin
Parent := AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 320;
Width := 150;
Height := 22;
Caption:= 'Играть';
Cursor:= crHand;
ShowHint:= True;
Hint:='Запустить игру "{#SetupSetting("AppName")}"'
OnClick := @PlayButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
//InstallButton (Установить)
InstallButton:= TButton.Create(AutoRun);
with InstallButton do begin
Parent:= AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 350;
Width := 150;
Height := 22;
Caption:= 'Установить';
Cursor:= crHand;
ShowHint:= True;
Hint:='Запуск Установки игры "{#SetupSetting("AppName")}"'
OnClick := @InstallButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
//SupportButton (Руководство)
SupportButton:= TButton.Create(AutoRun);
with SupportButton do begin
Parent:= AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 380;
Width := 150;
Height := 22;
//Enabled:=False; //
Caption:= 'Руководство';
Cursor:= crHand;
ShowHint:= True;
Hint:='Прочитать Руководство к игре'#10'(Нужна программа для чтения PDF)'
OnClick := @SupportButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
//ReadmeButton
ReadmeButton:= TButton.Create(AutoRun);
with ReadmeButton do begin
Parent:= AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 410;
Width := 150;
Height := 22;
Caption:= 'Readme';
ShowHint:= True;
Hint:='Прочитать файл Readme'
Cursor:= crHand;
OnClick := @ReadmeButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
//WebButton (Прохождение)
WebButton:= TButton.Create(AutoRun);
with WebButton do begin
Parent:= AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 440;
Width := 150;
Height := 22;
Caption:= 'Прохождение';
// Enabled:=False; //
Cursor:= crHand;
ShowHint:= True;
Hint:='Прочитать Прохождение игры'
OnClick := @WebButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
//UninstallButton (Удалить игру)
UninstallButton:= TButton.Create(AutoRun);
with UninstallButton do begin
Parent:= AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 470;
Width := 150;
Height := 22;
Caption:= 'Удалить';
Cursor:= crHand;
ShowHint:= True;
Hint:='Так игра надоела, что ли? '
OnClick := @UninstallButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
//DirectX Button (DirectX)
DirectxButtton:= TButton.Create(AutoRun);
with DirectxButtton do begin
Parent:= AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 500;
Width := 150;
Height := 22;
Caption:= 'DirectX';
//Enabled:=False; //
Cursor:= crHand;
ShowHint:= True;
Hint:='Установить "Microsoft DirectX 9.0c"'
OnClick := @DirectxButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
//ExitButton (Выход)
ExitButton:= TButton.Create(AutoRun);
with ExitButton do begin
Parent:= AutoRun;
Left:= 20 // Left 20 Right 620;
Top := 530;
Width := 150;
Height := 22;
Caption:= 'Выход';
Cursor:= crHand;
ShowHint:= True;
Hint:='Неужели игра не нужна? '
OnClick := @ExitButtonClick;
#ifdef PlayAutorunSFX
OnMouseEnter:=@MouseEnter2;
#endif
end;
// ---------- Конец Создание кнопок------------//\\ Кнопок может быть и больше, всё зависит от ваших потребностей \\

#ifdef PlayAutorunSFX
if not FileExists(ExpandConstant('{tmp}\LClick.wav')) then ExtractTemporaryFile('LClick.wav');
if not FileExists(ExpandConstant('{tmp}\Enter.wav')) then ExtractTemporaryFile('Enter.wav');
#endif

#ifdef PlayAutorunMusic
MusicPlayer(); // Вызов проигрывателя из модуля MEDIA\MusicPlayer.iss
#endif

if not FileExists(ExpandConstant('{tmp}\Video.avi')) then ExtractTemporaryFile('Video.avi');

XvidInstall;
Initialize(AutoRun.Handle,AutoRunForm.Handle);

if CanUseXvid then
XvidVideo(ExpandConstant('{tmp}\Video.avi'), '0 0 800 600');

// Проверяем установлена ли игра и вкл/откл кнопки Играть, Удалить
if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1','InstallLocation', InstallLocation) then
begin
UninstallButton.Enabled:=true;
PlayButton.Enabled := true;
end
else
begin
UninstallButton.Enabled:=false;
PlayButton.Enabled := false;
end;
// Проверяем установлена ли игра и вкл/откл кнопки Играть, Удалить

AutoRun.ShowModal;

#ifdef PlayAutorunMusic
mciSendString('close Music','',0,0);
#endif

Deinitialize;
XvidUnInstall;

AutoRun.Free;
Result:= ContinueInstall;
end;
[/more]
Автор: Gnom3
Дата сообщения: 17.05.2012 12:52
sjwrec
я просто делал это дело для инсталла, отсюда и беда - видео строго на майнформ воспроизводится. могу предложить не создавать дополнительных форм, а использовать родные, расположить авторан на странице приветствия, а саму страницу приветствия - просто добавить еще одну, если нужна. просто некогда сейчас переписывать, хоть и не много там, в принцыпе - добавить пару параметров и все...
Автор: sjwrec
Дата сообщения: 17.05.2012 20:13
Gnom3
Понятно. Пожалуйста доработайте библиотеку.
Добавьте управление видео - пауза, остановка, перемотка.
Добавьте проигрывание MP3 музыки.

А я пока сделаю авторун на родной форме в другом файле (Autorun.exe) а Setup будет мой основной скрипт.

Спасибо вам за помощь.
Автор: R3Pa4eK
Дата сообщения: 17.05.2012 21:10

Цитата:
Добавьте управление видео - пауза, остановка, перемотка.

ISVideo.dll от Vintage или IsDXvideo от Gnom.

Цитата:
Добавьте проигрывание MP3 музыки.

bass.dll или тот же ISVideo.dll.
Автор: sjwrec
Дата сообщения: 17.05.2012 22:02
R3Pa4eK

Цитата:
ISVideo.dll от Vintage или IsDXvideo от Gnom.


Что в первой, что во второй - нельзя сделать так чтобы кнопки и надписи были поверх видео.
А музыку можно и на MCI сделать.
Автор: Dark_Delphin
Дата сообщения: 19.05.2012 16:51
Всем привет!

Вот есть кусочек скрипта:

Код: begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
NeedSpaceLabel.Caption := 'Игра займет на диске: '+ MbOrTb(NeedSize)
TotalNeedSpaceLabel.Caption := 'Для установки требуется: '+ MbOrTb(TotalNeedSize)
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ MbOrTb(FreeMB)
WizardForm.NextButton.Enabled:= (FreeMB>TotalNeedSize);
if (FreeMB<TotalNeedSize) then
FreeSpaceLabel.Font.Color:=clRed else
FreeSpaceLabel.Font.Color:=WizardForm.Font.Color;
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.