[Setup]
AppName=Exp
AppVersion=0.1
CreateAppDir=no
[Files]
Source: Files\*; Flags: dontcopy
[CustomMessages]
btnRun=Запуск
[Modules]
#include "Modules\botva2.iss"
[Code]
//-[ Header ]----------------------------------------------------------------------------------------------------------------------------------------
var
GameIstall: Boolean;
ResultReg: String;
function TButtonCreate(h: hWnd; X, Y, Width, Height: Integer; FileName: PAnsiChar; BtnFont: hWnd; Text: String; Proc: TBtnEventProc): HWND;
begin
Result:=BtnCreate(h, ScaleX(X), ScaleY(Y), ScaleX(Width), ScaleY(Height), FileName, 0, False);
if Proc <> nil then BtnSetEvent(Result, BtnClickEventID, WrapBtnCallback(Proc, 1));
BtnSetFont(Result, BtnFont);
BtnSetText(Result, Text);
end;
procedure CheckGame(RootKey: Integer; SubKeyName, ValueName: String);
begin
GameIstall:=RegQueryStringValue(RootKey, SubKeyName, ValueName, ResultReg);
StringChange( ResultReg, '%ProgramFiles%', ExpandConstant('{pf}'));
StringChange( ResultReg, '"', '');
end;
procedure NextBtnClick(h: hWnd);
var
ResultCode: Integer;
begin
with WizardForm do begin
if CurPageID <> wpWelcome then NextButton.Click
else begin
if GameIstall then begin
Exec(ResultReg, '', '', SW_SHOW, ewNoWait, ResultCode);
WizardForm.Close;
end else NextButton.Click;
end;
end;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True;
if CurPageID = wpWelcome then Confirm:=not GameIstall;
end;
//-[ Code ]------------------------------------------------------------------------------------------------------------------------------------------
var
hNextBtn: HWND;
function InitializeSetup: Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll');
Result:=True;
end;
procedure InitializeWizard;
begin
with WizardForm do begin
NextButton.Width:=ScaleX(0); NextButton.TabStop:=False;
//
CheckGame(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE', '');
hNextBtn:=TButtonCreate(Handle, 317, 328, 80, 21, 'button.png', NextButton.Font.Handle, '', @NextBtnClick);
//
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if GameIstall then begin
BtnSetText(hNextBtn, CustomMessage('btnRun'));
WizardForm.WelcomeLabel1.Caption:='Блокнот найден.';
WizardForm.WelcomeLabel2.Caption:='Что бы запустить блокнот, жмакай "Запуск"';
end else BtnSetText(hNextBtn, PAnsiChar(WizardForm.NextButton.Caption));
end;
procedure DeinitializeSetup;
begin
gdipShutdown;
end;