347 lines
12 KiB
Plaintext
347 lines
12 KiB
Plaintext
|
[Code]
|
|||
|
#include "DllsImport.iss"
|
|||
|
|
|||
|
var
|
|||
|
BGimg:longint;
|
|||
|
btnShowLicense,MinBtn,CancelBtn,btnBrowser,btnSetup,btnBack:HWND;
|
|||
|
isWelcomePage:boolean;
|
|||
|
pathEdit:tedit;
|
|||
|
labelReadImg,licenseImg,progressbgImg,PBOldProc,labelAutoRunImg:longint;
|
|||
|
checkboxLicense,checkboxAutoRun:HWND;
|
|||
|
licenseRich:TRichEditViewer;
|
|||
|
DpiScalePctg:integer;
|
|||
|
CurrentDPI:integer;
|
|||
|
|
|||
|
function DpiScale(v:integer):integer;
|
|||
|
begin
|
|||
|
Result:=v*DpiScalePctg/1000;
|
|||
|
end;
|
|||
|
|
|||
|
// <20><>װǰǿ<C7B0><C7BF>ɱ<EFBFBD><C9B1>
|
|||
|
// <20>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ڰ<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>False <20><><EFBFBD>жϰ<D0B6>װ<EFBFBD><D7B0>True<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ.<2E><>
|
|||
|
function InitializeSetup(): Boolean;
|
|||
|
var ErrorCode: Integer;
|
|||
|
begin
|
|||
|
ShellExec('open','taskkill.exe','/f /im {#MyAppExeName}','',SW_HIDE,ewNoWait,ErrorCode);
|
|||
|
ShellExec('open','tskill.exe',' {#MyAppName}','',SW_HIDE,ewNoWait,ErrorCode);
|
|||
|
result := True;
|
|||
|
end;
|
|||
|
|
|||
|
// ж<><D0B6>ǰǿ<C7B0><C7BF>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD>
|
|||
|
function InitializeUninstall(): Boolean;
|
|||
|
var ErrorCode: Integer;
|
|||
|
begin
|
|||
|
ShellExec('open','taskkill.exe','/f /im {#MyAppExeName}','',SW_HIDE,ewNoWait,ErrorCode);
|
|||
|
ShellExec('open','tskill.exe',' {#MyAppName}','',SW_HIDE,ewNoWait,ErrorCode);
|
|||
|
result := True;
|
|||
|
end;
|
|||
|
|
|||
|
// <20><EFBFBD><F2B5BCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ (<28><>PageID ָ<><D6B8>) <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>True<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷵<EFBFBD><E3B7B5>False<73><65><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|||
|
// ע<><D7A2>: <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wpWelcome<6D><65>wpPreparing <20><>wpInstalling ҳ<><D2B3><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>а<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ȷ<EFBFBD><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳҲ<D2B3><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished
|
|||
|
function ShouldSkipPage(PageID: Integer): Boolean;
|
|||
|
begin
|
|||
|
if PageID=wpLicense then
|
|||
|
result:=true;
|
|||
|
if PageID=wpInfoBefore then
|
|||
|
result:=true;
|
|||
|
if PageID=wpUserInfo then
|
|||
|
result:=true;
|
|||
|
if PageID=wpSelectDir then
|
|||
|
result:=true;
|
|||
|
if PageID=wpSelectComponents then
|
|||
|
result:=true;
|
|||
|
if PageID=wpSelectProgramGroup then
|
|||
|
result:=true;
|
|||
|
if PageID=wpSelectTasks then
|
|||
|
result:=true;
|
|||
|
end;
|
|||
|
|
|||
|
// <20>رհ<D8B1>ť
|
|||
|
procedure CancelBtnOnClick(hBtn:HWND);
|
|||
|
begin
|
|||
|
WizardForm.CancelButton.OnClick(WizardForm);
|
|||
|
end;
|
|||
|
|
|||
|
// <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ť
|
|||
|
procedure MinBtnOnClick(hBtn:HWND);
|
|||
|
begin
|
|||
|
SendMessage(WizardForm.Handle,WM_SYSCOMMAND,61472,0);
|
|||
|
end;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>а<EFBFBD>ť
|
|||
|
procedure btnBrowserclick(hBtn:HWND);
|
|||
|
begin
|
|||
|
WizardForm.DirBrowseButton.OnClick(WizardForm);
|
|||
|
pathEdit.text := WizardForm.DirEdit.text;
|
|||
|
end;
|
|||
|
|
|||
|
// ·<><C2B7>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD> change
|
|||
|
procedure pathEditChange(Sender: TObject);
|
|||
|
begin
|
|||
|
WizardForm.DirEdit.text:=pathEdit.Text ;
|
|||
|
end;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>Ȱ<EFBFBD>ť<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2>ϵ<EFBFBD><CFB5><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
procedure nextSetpBtnClick(hBtn:HWND);
|
|||
|
begin
|
|||
|
WizardForm.NextButton.OnClick(WizardForm);
|
|||
|
end;
|
|||
|
|
|||
|
// <20><>װ<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
function PBProc(h:hWnd;Msg,wParam,lParam:Longint):Longint;
|
|||
|
var
|
|||
|
pr,i1,i2 : Extended;
|
|||
|
w : integer;
|
|||
|
begin
|
|||
|
Result:=CallWindowProc(PBOldProc,h,Msg,wParam,lParam);
|
|||
|
if (Msg=$402) and (WizardForm.ProgressGauge.Position>WizardForm.ProgressGauge.Min) then
|
|||
|
begin
|
|||
|
i1:=WizardForm.ProgressGauge.Position-WizardForm.ProgressGauge.Min;
|
|||
|
i2:=WizardForm.ProgressGauge.Max-WizardForm.ProgressGauge.Min;
|
|||
|
pr:=i1*100/i2;
|
|||
|
w:=Round(650*pr/100);
|
|||
|
ImgSetPosition(progressbgImg,0,DpiScale(320),DpiScale(w),DpiScale(15));
|
|||
|
ImgSetVisiblePart(progressbgImg,0,0,w,DpiScale(15));
|
|||
|
ImgApplyChanges(WizardForm.Handle);
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>
|
|||
|
procedure WizardMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|||
|
begin
|
|||
|
ReleaseCapture
|
|||
|
SendMessage(WizardForm.Handle, $0112, $F012, 0)
|
|||
|
end;
|
|||
|
|
|||
|
// <20>鿴 license
|
|||
|
procedure btnShowLicenseClick(hBtn:HWND);
|
|||
|
begin
|
|||
|
if isWelcomePage=true then
|
|||
|
begin
|
|||
|
isWelcomePage:=false
|
|||
|
ImgSetVisibility(licenseImg,true)
|
|||
|
ImgSetVisibility(BGimg,false)
|
|||
|
ImgSetVisibility(labelReadImg,false)
|
|||
|
licenseRich.Height:=DpiScale(295)
|
|||
|
BtnSetVisibility(checkboxLicense,false)
|
|||
|
BtnSetVisibility(btnShowLicense,false)
|
|||
|
BtnSetVisibility(btnSetup,false)
|
|||
|
BtnSetVisibility(btnBrowser,false)
|
|||
|
pathEdit.Hide
|
|||
|
BtnSetVisibility(btnBack,true)
|
|||
|
end else
|
|||
|
begin
|
|||
|
isWelcomePage:=true
|
|||
|
ImgSetVisibility(BGimg,true)
|
|||
|
ImgSetVisibility(licenseImg,false)
|
|||
|
ImgSetVisibility(labelReadImg,true)
|
|||
|
licenseRich.Height:=0
|
|||
|
BtnSetVisibility(checkboxLicense,true)
|
|||
|
BtnSetVisibility(btnShowLicense,true)
|
|||
|
BtnSetVisibility(btnSetup,true)
|
|||
|
BtnSetVisibility(btnBrowser,true)
|
|||
|
pathEdit.show
|
|||
|
BtnSetVisibility(btnBack,false)
|
|||
|
end;
|
|||
|
ImgApplyChanges(WizardForm.Handle)
|
|||
|
end;
|
|||
|
|
|||
|
// <20><>ѡ<EFBFBD>鿴 license
|
|||
|
procedure checkboxLicenseClick(hBtn:HWND);
|
|||
|
begin
|
|||
|
if BtnGetChecked(checkboxLicense)=true then
|
|||
|
begin
|
|||
|
BtnSetEnabled(btnSetup,true)
|
|||
|
end else
|
|||
|
begin
|
|||
|
BtnSetEnabled(btnSetup,false)
|
|||
|
end
|
|||
|
end;
|
|||
|
|
|||
|
// <20>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>ڿ<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><F2B5BCBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>ʹ<EFBFBD><CAB9>InitializeSetup<75><70><EFBFBD><EFBFBD>ʵ<EFBFBD>ָı<D6B8><C4B1><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD>Ĺ<EFBFBD><C4B9>ܣ<EFBFBD><DCA3><EFBFBD>ΪInitializeSetup<75><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><F2B5BCB4>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>
|
|||
|
procedure InitializeWizard();
|
|||
|
var
|
|||
|
MainLabel: TLabel;
|
|||
|
begin
|
|||
|
|
|||
|
CurrentDPI := WizardForm.Font.PixelsPerInch;
|
|||
|
DpiScalePctg := 1000* CurrentDPI / 96;
|
|||
|
// <20><><EFBFBD>û<EFBFBD>ӭ<EFBFBD><D3AD><EFBFBD><EFBFBD>ҳ<EFBFBD>ijߴ<C4B3><DFB4><EFBFBD>С
|
|||
|
WizardForm.OuterNotebook.hide;
|
|||
|
WizardForm.Bevel.Hide;
|
|||
|
WizardForm.BorderStyle:=bsnone;
|
|||
|
WizardForm.Position:=poScreenCenter;
|
|||
|
// WizardForm.Center;
|
|||
|
WizardForm.Width:=DpiScale(650);
|
|||
|
WizardForm.Height:=DpiScale(450);
|
|||
|
// WizardForm.Color:=clWhite;
|
|||
|
isWelcomePage:=true;
|
|||
|
// WizardForm.InnerNotebook.Hide;
|
|||
|
// wizardform.Color:=TransparentColor;
|
|||
|
|
|||
|
// <20><><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ڵ<EFBFBD>Label
|
|||
|
MainLabel := TLabel.Create(WizardForm);
|
|||
|
MainLabel.Parent := WizardForm;
|
|||
|
MainLabel.AutoSize := False;
|
|||
|
MainLabel.Left := 0;
|
|||
|
MainLabel.Top := 0;
|
|||
|
MainLabel.Width := WizardForm.Width;
|
|||
|
MainLabel.Height := WizardForm.Height;
|
|||
|
MainLabel.Caption := '';
|
|||
|
MainLabel.Transparent := True;
|
|||
|
MainLabel.OnMouseDown := @WizardMouseDown;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4> tmp <20><>ʱĿ¼
|
|||
|
ExtractTemporaryFile('bg_welcome.png');
|
|||
|
ExtractTemporaryFile('bg_installing.png');
|
|||
|
ExtractTemporaryFile('bg_license.png');
|
|||
|
ExtractTemporaryFile('bg_finished.png');
|
|||
|
ExtractTemporaryFile('label_read.png');
|
|||
|
ExtractTemporaryFile('label_license.png');
|
|||
|
ExtractTemporaryFile('license.txt');
|
|||
|
ExtractTemporaryFile('btn_close.png');
|
|||
|
ExtractTemporaryFile('btn_min.png');
|
|||
|
ExtractTemporaryFile('btn_back.png');
|
|||
|
ExtractTemporaryFile('btn_setup.png');
|
|||
|
ExtractTemporaryFile('btn_browser.png');
|
|||
|
ExtractTemporaryFile('checkbox.png');
|
|||
|
ExtractTemporaryFile('btn_complete.png');
|
|||
|
ExtractTemporaryFile('loading.png');
|
|||
|
ExtractTemporaryFile('label_autorun.png');
|
|||
|
|
|||
|
// <20>رհ<D8B1>ť<EFBFBD><C5A5>ʽ
|
|||
|
CancelBtn:=BtnCreate(WizardForm.Handle,DpiScale(650-10-16),DpiScale(8),DpiScale(16),DpiScale(16),ExpandConstant('{tmp}\btn_close.png'),1,False)
|
|||
|
BtnSetEvent(CancelBtn,BtnClickEventID,WrapBtnCallback(@CancelBtnOnClick,1));
|
|||
|
|
|||
|
// <20><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ť<EFBFBD><C5A5>ʽ
|
|||
|
MinBtn:=BtnCreate(WizardForm.Handle,DpiScale(624-10-16),DpiScale(8),DpiScale(16),DpiScale(16),ExpandConstant('{tmp}\btn_min.png'),1,False)
|
|||
|
BtnSetEvent(MinBtn,BtnClickEventID,WrapBtnCallback(@MinBtnOnClick,1));
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ť<EFBFBD><C5A5>ʽ
|
|||
|
btnSetup:=BtnCreate(WizardForm.Handle,DpiScale(195),DpiScale(340),DpiScale(260),DpiScale(44),ExpandConstant('{tmp}\btn_setup.png'),1,False)
|
|||
|
BtnSetEvent(btnSetup,BtnClickEventID,WrapBtnCallback(@nextSetpBtnClick,1));
|
|||
|
|
|||
|
// <20><><EFBFBD>ذ<EFBFBD>ť<EFBFBD><C5A5>ʽ
|
|||
|
btnBack:=BtnCreate(WizardForm.Handle,DpiScale(285),DpiScale(390),DpiScale(80),DpiScale(32),ExpandConstant('{tmp}\btn_back.png'),1,False)
|
|||
|
BtnSetEvent(btnBack,BtnClickEventID,WrapBtnCallback(@btnShowLicenseClick,1));
|
|||
|
BtnSetVisibility(btnBack,false)
|
|||
|
|
|||
|
pathEdit:= TEdit.Create(WizardForm);
|
|||
|
with pathEdit do
|
|||
|
begin
|
|||
|
Parent:=WizardForm;
|
|||
|
text:=WizardForm.DirEdit.text;
|
|||
|
Font.Name:='<27><><EFBFBD><EFBFBD>'
|
|||
|
BorderStyle:=bsNone;
|
|||
|
SetBounds(DpiScale(110),DpiScale(272),DpiScale(340),DpiScale(15))
|
|||
|
OnChange:=@pathEditChange;
|
|||
|
TabStop:=false;
|
|||
|
end;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť<EFBFBD><C5A5>ʽ
|
|||
|
btnBrowser:=BtnCreate(WizardForm.Handle,DpiScale(470),DpiScale(263),DpiScale(80),DpiScale(32),ExpandConstant('{tmp}\btn_browser.png'),1,False)
|
|||
|
BtnSetEvent(btnBrowser,BtnClickEventID,WrapBtnCallback(@btnBrowserclick,1));
|
|||
|
|
|||
|
PBOldProc:=SetWindowLong(WizardForm.ProgressGauge.Handle,-4,PBCallBack(@PBProc,4));
|
|||
|
|
|||
|
// <20>鿴 license <20><><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
licenseRich:= TRichEditViewer.Create(WizardForm);
|
|||
|
with licenseRich do
|
|||
|
begin
|
|||
|
Parent:=WizardForm;
|
|||
|
ReadOnly:=true;
|
|||
|
SCROLLBARS:=ssVertical;
|
|||
|
font.Name:='<27><><EFBFBD><EFBFBD>';
|
|||
|
font.Size:=12;
|
|||
|
Color:=clWhite;
|
|||
|
BorderStyle:=bsNone;
|
|||
|
SetBounds(DpiScale(40),DpiScale(65),DpiScale(570),0)
|
|||
|
Lines.LoadFromFile(ExpandConstant('{tmp}\license.txt'));
|
|||
|
TabStop:=false;
|
|||
|
end;
|
|||
|
|
|||
|
ImgApplyChanges(WizardForm.Handle)
|
|||
|
end;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ (<28><>CurPageID ָ<><D6B8>) <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>
|
|||
|
procedure CurPageChanged(CurPageID: Integer);
|
|||
|
begin
|
|||
|
// Ĭ<>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>̰<EFBFBD>ť<EFBFBD><C5A5><EFBFBD>ص<EFBFBD>
|
|||
|
WizardForm.NextButton.Visible:=false;
|
|||
|
WizardForm.CancelButton.Height:=0;
|
|||
|
WizardForm.BackButton.Height:=0;
|
|||
|
|
|||
|
if CurPageID=wpWelcome then
|
|||
|
begin
|
|||
|
licenseImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg_license.png'),0,0,DpiScale(650),DpiScale(450),true,true);
|
|||
|
ImgSetVisibility(licenseImg,false)
|
|||
|
BGimg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg_welcome.png'),0,0,DpiScale(650),DpiScale(450),true,true);
|
|||
|
|
|||
|
// license <20><>ʾ
|
|||
|
checkboxLicense:=BtnCreate(WizardForm.Handle,DpiScale(220),DpiScale(400),DpiScale(16),DpiScale(16),ExpandConstant('{tmp}\checkbox.png'),1,true)
|
|||
|
BtnSetEvent(checkboxLicense,BtnClickEventID,WrapBtnCallback(@checkboxLicenseClick,1))
|
|||
|
|
|||
|
// Ĭ<>Ϲ<EFBFBD>ѡ <20>Ķ<EFBFBD><C4B6><EFBFBD>ͬ<EFBFBD><CDAC>
|
|||
|
BtnSetChecked(checkboxLicense,true)
|
|||
|
labelReadImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\label_read.png'),DpiScale(243),DpiScale(398),DpiScale(39),DpiScale(20),true,true);
|
|||
|
btnShowLicense:=BtnCreate(WizardForm.Handle,DpiScale(282),DpiScale(398),DpiScale(65),DpiScale(20),ExpandConstant('{tmp}\label_license.png'),DpiScale(4),false)
|
|||
|
BtnSetEvent(btnShowLicense,BtnClickEventID,WrapBtnCallback(@btnShowLicenseClick,1))
|
|||
|
|
|||
|
WizardForm.Width:=DpiScale(650);
|
|||
|
WizardForm.Height:=DpiScale(450);
|
|||
|
WizardForm.Show;
|
|||
|
end;
|
|||
|
|
|||
|
if CurPageID = wpInstalling then
|
|||
|
begin
|
|||
|
BtnSetPosition(checkboxLicense,DpiScale(560),DpiScale(421),DpiScale(75),DpiScale(15));
|
|||
|
pathEdit.Hide;
|
|||
|
BtnSetVisibility(btnBrowser,false)
|
|||
|
WizardForm.Height:=DpiScale(450)
|
|||
|
BtnSetVisibility(btnShowLicense,false);
|
|||
|
BtnSetVisibility(checkboxLicense,false);
|
|||
|
BGimg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg_installing.png'),0,0,DpiScale(650),DpiScale(450),true,true);
|
|||
|
|
|||
|
progressbgImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\loading.png'),0,DpiScale(320),DpiScale(650),0,True,True);
|
|||
|
|
|||
|
BtnSetVisibility(btnSetup,false);
|
|||
|
end;
|
|||
|
|
|||
|
if CurPageID = wpFinished then
|
|||
|
begin
|
|||
|
ImgSetVisibility(progressbgImg,false)
|
|||
|
btnSetup:=BtnCreate(WizardForm.Handle,DpiScale(195),DpiScale(340),DpiScale(260),DpiScale(44),ExpandConstant('{tmp}\btn_complete.png'),1,False)
|
|||
|
BtnSetEvent(btnSetup,BtnClickEventID,WrapBtnCallback(@nextSetpBtnClick,1));
|
|||
|
|
|||
|
BGimg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg_finished.png'),0,0,DpiScale(650),DpiScale(450),true,true);
|
|||
|
|
|||
|
// <20>Ƿ<EFBFBD><C7B7>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
checkboxAutoRun:=BtnCreate(WizardForm.Handle,DpiScale(275),DpiScale(400),DpiScale(16),DpiScale(16),ExpandConstant('{tmp}\checkbox.png'),1,true)
|
|||
|
labelAutoRunImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\label_autorun.png'),DpiScale(295),DpiScale(398),DpiScale(84),DpiScale(20),true,true);
|
|||
|
|
|||
|
// Ĭ<>Ϲ<EFBFBD>ѡ
|
|||
|
BtnSetChecked(checkboxAutoRun,true);
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>عرպ<D8B1><D5BA><EFBFBD>С<EFBFBD><D0A1>
|
|||
|
BtnSetVisibility(CancelBtn,false);
|
|||
|
BtnSetVisibility(MinBtn,false);
|
|||
|
end;
|
|||
|
|
|||
|
ImgApplyChanges(WizardForm.Handle)
|
|||
|
end;
|
|||
|
|
|||
|
// <20>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>ڰ<EFBFBD>װ<EFBFBD><D7B0>ֹʱ<D6B9><CAB1><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>ע<EFBFBD>⼰ʱ<E2BCB0><CAB1><EFBFBD>û<EFBFBD>û<EFBFBD>а<EFBFBD>װ<EFBFBD>κ<EFBFBD><CEBA>ļ<EFBFBD>֮ǰ<D6AE>˳<EFBFBD>Ҳ<EFBFBD>ᱻ<EFBFBD><E1B1BB><EFBFBD>á<EFBFBD>
|
|||
|
procedure DeinitializeSetup();
|
|||
|
var RCode: Integer;
|
|||
|
begin
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if BtngetChecked(checkboxAutoRun)=true then
|
|||
|
begin
|
|||
|
Exec(ExpandConstant('{app}\{#MyAppExeName}'),'','',SW_SHOW, ewNoWait,RCode);
|
|||
|
end;
|
|||
|
|
|||
|
gdipShutdown;
|
|||
|
end;
|
|||
|
|