`
ydw5271084
  • 浏览: 7456 次
社区版块
存档分类
最新评论

inno setup pplive yang

 
阅读更多
#define MyAppName "PPTV"
#define MyAppExeName"PPTV"
#define MyAppVersion "1.0.0.0"
[Setup]
AppName={#MyAppName}
AppVersion={#MyAppName}
AppVerName={#MyAppName}
AppPublisher={#MyAppName}
DefaultDirName={pf}\PPLive\PPTV
DefaultGroupName={#MyAppName}
OutputDir=.
OutputBaseFilename={#MyAppName}
SetupIconFile=install.ico
UninstallIconFile=install.ico
VersionInfoVersion={#MyAppVersion}
VersionInfoTextVersion={#MyAppVersion}
VersionInfoDescription=《{#MyAppName}》安装包
versioninfocopyright=逆风丶蔷薇花瓣 出品
VersionInfoProductName={#MyAppName}
VersionInfoProductTextVersion={#MyAppVersion}
VersionInfoProductVersion={#MyAppVersion}
VersionInfoCompany=逆风丶蔷薇花瓣 版权所有
DisableReadyPage=yes
DisableProgramGroupPage=yes
DirExistsWarning=no
DisableDirPage=yes
//压缩级别
//InternalCompressLevel=ultra64
//压缩算法
Compression=lzma2/ultra64
[Messages]
BeveledLabel=Copyright(C)2012-2015 逆风丶蔷薇花瓣
SetupWindowTitle={#MyAppName}

[Icons]
Name: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PPLive\{#MyAppName}\{#MyAppName}; Filename: {app}\Program\Thunder.exe; WorkingDir: {app}; Check: StartMenu;
//开始菜单快捷方式
Name: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PPLive\{#MyAppName}\卸载 {#MyAppName}; Filename:{uninstallexe}; WorkingDir: {app}; Check: StartMenu;
//开始菜单卸载程序
Name: {commondesktop}\{#MyAppName}; Filename: {app}\Program\Thunder.exe; WorkingDir: {app}; Check: desktop;
//桌面快捷方式
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\{#MyAppName}; Filename: {app}\Thunder.exe; WorkingDir: {app}; Check: StartMenu;
//开始菜单快速引导栏

[registry]
Root:HKLM;Subkey:"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";ValueType:string;ValueName:"PPTV";ValueData:"{app}\Program\Thunder.exe";check:regedit;
//开机自启动注册表
[Files]
Source: {tmp}\*; DestDir: {tmp}; Flags: dontcopy solidbreak ; Attribs: hidden system
//Source: "D:\软件\迅雷7\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
//以上是包含文件夹的目录
//包含文件夹recursesubdirs createallsubdirs   卸载时不删除uninsneveruninstall      卸载时删除ignoreversion




type
  TBtnEventProc = procedure (h:HWND);
  TPBProc = function(h:hWnd;Msg,wParam,lParam:Longint):Longint;  //百分比

Const
//鼠标指向
  MyCursor1 = 101;
  MyCursor2 = 102;
  Radius  = 9;
  GWL_EXSTYLE = (-20);
  GCL_STYLE = (-26);
  CS_DROPSHADOW = $20000;
//窗口移动
  WM_SYSCOMMAND = $0112;
//卸载
//  WS_EX_APPWINDOW = $40000;
//按钮
  BtnClickEventID      = 1;
  BtnMouseEnterEventID = 2;

//botva2
function ImgLoad(Wnd :HWND; FileNameAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetVisibility(img :Longint; Visible :boolean); external 'ImgSetVisibility@{tmp}\botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetPosition(img :Longint; NewLeft, NewTop, NewWidth, NewHeight :integer); external 'ImgSetPosition@files:botva2.dll stdcall';
procedure ImgSetTransparent(img:Longint; Value:integer); external 'ImgSetTransparent@{tmp}\botva2.dll stdcall delayload';
procedure ImgRelease(img :Longint); external 'ImgRelease@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown;  external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';
function WrapBtnCallback(Callback: TBtnEventProc; ParamCount: Integer): Longword; external 'wrapcallback@{tmp}\innocallback.dll stdcall delayload';
function BtnCreate(hParent:HWND; Left,Top,Width,Height:integer; FileName:PAnsiChar; ShadowWidth:integer; IsCheckBtn:boolean):HWND;  external 'BtnCreate@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetText(h:HWND; Text:PAnsiChar);  external 'BtnSetText@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetVisibility(h:HWND; Value:boolean); external 'BtnSetVisibility@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetFont(h:HWND; Font:Cardinal); external 'BtnSetFont@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetFontColor(h:HWND; NormalFontColor, FocusedFontColor, PressedFontColor, DisabledFontColor: Cardinal); external 'BtnSetFontColor@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetEvent(h:HWND; EventID:integer; Event:Longword); external 'BtnSetEvent@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetCursor(h:HWND; hCur:Cardinal); external 'BtnSetCursor@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetEnabled(h:HWND; Value:boolean); external 'BtnSetEnabled@{tmp}\botva2.dll stdcall delayload';
function GetSysCursorHandle(id:integer):Cardinal; external 'GetSysCursorHandle@{tmp}\botva2.dll stdcall delayload';
function BtnGetChecked(h:HWND):boolean; external 'BtnGetChecked@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetChecked(h:HWND; Value:boolean); external 'BtnSetChecked@{tmp}\botva2.dll stdcall delayload';
procedure CreateFormFromImage(h:HWND; FileName:PAnsiChar); external 'CreateFormFromImage@{tmp}\botva2.dll stdcall delayload';
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function PBCallBack(P:TPBProc;ParamCount:integer):LongWord; external 'wrapcallback@files:innocallback.dll stdcall';
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall';
procedure ImgSetVisiblePart(img:Longint; NewLeft, NewTop, NewWidth, NewHeight : integer); external 'ImgSetVisiblePart@files:botva2.dll stdcall';
function SetLayeredWindowAttributes(hwnd:HWND; crKey:Longint; bAlpha:byte; dwFlags:longint ):longint;
  external 'SetLayeredWindowAttributes@user32 stdcall';
function SetClassLong(hWnd: HWND; nlndex: integer; dwNewLong: integer ): integer; external 'SetClassLongA@user32 stdcall';
function GetClassLong(IntPtr:hwnd;nIndex:integer ):integer; external 'GetClassLongA@user32 stdcall';
function CreateRoundRectRgn(p1, p2, p3, p4, p5, p6: Integer): THandle; external 'CreateRoundRectRgn@gdi32 stdcall';
function SetWindowRgn(hWnd: HWND; hRgn: THandle; bRedraw: Boolean): Integer; external 'SetWindowRgn@user32 stdcall';
function ReleaseCapture(): Longint; external 'ReleaseCapture@user32.dll stdcall';
//安装过程图片轮播
function NewWebWnd(hWndParent: HWND; X, Y, nWidth, nHeight: Integer): HWND; external 'newwebwnd@files:webctrl.dll stdcall';
function FreeAllWebWnd(): Boolean; external 'freeallwebwnd@files:webctrl.dll stdcall';
function WebWndSetParent(hWndWeb: HWND; hWndParent: HWND): Boolean; external 'webwndsetparent@files:webctrl.dll stdcall';
function DisplayHTMLPage(hWndWeb: HWND; lpsURL: PChar): Boolean; external 'displayhtmlpage@files:webctrl.dll stdcall';

//窗口圆角
procedure ShapeForm(aForm: TForm; edgeSize: integer);
var
  FormRegion:LongWord;
begin
  FormRegion:=CreateRoundRectRgn(0,0,aForm.Width,aForm.Height,edgeSize-6,edgeSize-6);
  SetWindowRgn(aForm.Handle,FormRegion,True);
end;
var
//取消窗口
CancelImage: Longint;
CancelForm: TSetupForm;
OKButton: TButton;
//右上角按钮+取消窗口
CloseBtn,CancelCloseBtn: HWND;
IconI:HWND;
//最小化窗口按钮
MinBtn:HWND;
//按钮
OKBtn,CancelFormBtn:HWND;
//窗口
WizardFormImage: Longint;
gddh,pbImg,pbbgImg: Longint;
//按钮
CancelBtn,backBtn,Startbtn,NextBtn,nextbtn1,DirBrowseBtn,Finbtn: HWND;
//勾选框
A2Check,A3Check,A4Check,A5Check,A6Check,A7Check,A8Check: HWND;
//文字标签
Label1,Label2,Label3,Label4,Label5,Label6,Label7,Label8,Label9,Label10:tlabel;
Label11,Label12,Label13:tlabel;
Edit1:Tedit;
WelTx1,WelTx2,PrLabel,PrLabel1:Tlabel;
//硬盘显示
FreeMB,TotalMB: Cardinal;
PBOldProc : Longint;
//阴影框
IsFrameDragging : boolean;
dx,dy,dh1 : integer;
Frame : TForm;
//按钮文字
WFButtonFont:tfont;
//安装过程图片
InstallingImage: HWND;

//百分比
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;
    PrLabel.Caption:=IntToStr(Round(pr))+'%';
    w:=Round(451*pr/100);
    if w<460 then
    begin
    ImgSetPosition(pbImg,18+w,327,99,25);
    end;
    ImgSetPosition(pbImg,20,327,w,25);
//    ImgSetVisiblePart(pbImg,0,0,w,25);
    ImgApplyChanges(WizardForm.Handle);
  end;
end;

//磁盘
function NumToStr(Float: Extended): string;
begin
  Result:=Format('%.2n', [Float]);
end;
function MbOrTB(Float: Extended): string;
begin
  if Float<1024 then Result:=NumToStr(Float)+' MB'
  else if (Float/1024)<1024 then Result:=NumToStr(Float/1024)+' GB'
  else if (Float/(1024*1024))<1024 then Result:=NumToStr(Float/(1024*1024))+' TB'
end;
procedure GetFreeSpaceCaption(Sender: TObject);
begin
  WizardForm.DirEdit.Text:=WizardForm.DirEdit.Text;
  if GetSpaceOnDisk(ExtractFileDrive(WizardForm.DirEdit.Text),True,FreeMB,TotalMB) then
  begin
    WelTx2.Font.Color :=clSilver;
    WelTx2.Caption:= ExpandConstant('可用空间: ') + MbOrTB(FreeMB) ;
    BtnSetEnabled(NextBtn,true)
  end else
  begin
    WelTx2.Font.Color:=clRed
    WelTx2.Caption:= '错误安装路径或者空间不足';
    if WelTx2.Caption='错误安装路径或者空间不足'then
    begin
    BtnSetEnabled(NextBtn,false)
   end
end
end;
//窗口移动
//procedure WizardFormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
//begin
//  ReleaseCapture
//  SendMessage(WizardForm.Handle, WM_SYSCOMMAND, $F012, 0)
//end;
//*************外框**************
procedure WizardMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture
  SendMessage(WizardForm.Handle, WM_SYSCOMMAND, $F012, 0)
end;

procedure WizardFormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  IsFrameDragging:=True;
  dx:=X;
  dy:=Y;
end;

procedure WizardFormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  IsFrameDragging:=False;
  WizardForm.Show;
end;

procedure WizardFormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
  if IsFrameDragging then begin
    WizardForm.Left:=WizardForm.Left+X-dx;
    WizardForm.Top:=WizardForm.Top+Y-dy;
    Frame.Left:=WizardForm.Left-10;
    Frame.Top:=WizardForm.Top-10;
  end;
end;
procedure frameFormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  WizardForm.Show;
end;

procedure WizardFormcc;
begin
    WizardForm.OnMouseDown:=@WizardFormMouseDown;
    WizardForm.OnMouseUp:=@WizardFormMouseUp;
    WizardForm.OnMouseMove:=@WizardFormMouseMove;
end;

procedure CreateFrame;
begin
  IsFrameDragging:=False;
  Frame:=TForm.Create(nil);;
  Frame.BorderStyle:=bsNone;
  CreateFormFromImage(Frame.Handle,ExpandConstant('{tmp}\bg00.png'));
  with TLabel.Create(Frame) do begin
    Parent:=Frame;
    AutoSize:=false;
    Left:=0;
    Top:=0;
    Width:=Frame.CLientWidth;
    Height:=Frame.ClientHeight;
    OnMouseDown:=@frameFormMouseUp;
  end;
  WizardForm.Left:=Frame.Left+10;
  WizardForm.Top:=Frame.Top+10;
  Frame.Show;
end;
//*************外框**************

//“快速安装”按钮点击事件
procedure NextBtn1Click(hBtn:HWND);
begin
WizardForm.NextButton.Click;
end;
//“浏览”按钮点击事件
procedure EditdirOnClick(hBtn:HWND);
begin
WizardForm.DirBrowseButton.Click;
Edit1.Text:=WizardForm.DirEdit.Text;
end;
//“自定义目录”修改
procedure Editchanged(Sender: TObject);
begin
WizardForm.DirEdit.Text:=Edit1.Text;
end;
//最小化按钮
procedure MinBtnOnClick(hBtn:HWND);
begin
SendMessage(WizardForm.Handle,WM_SYSCOMMAND,61472,0);
end;
//取消窗口
procedure CancelFormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture
  SendMessage(CancelForm.Handle, WM_SYSCOMMAND, $F012, 0)
end;
//“立即体验”按钮点击事件
procedure FinbtnClick(hBtn:HWND);
begin
WizardForm.NextButton.Click;
end;
//取消窗口关闭按钮
procedure CancelCloseBtnOnClick(hBtn:HWND);
begin
CancelForm.close;
end;
//确定按钮
procedure OKBtnOnClick(hBtn:HWND);
begin
OKButton.Click;
end;
//取消窗口取消按钮
procedure CancelBtnOnClick(hBtn:HWND);
begin
CancelForm.close;
end;
//全局取消按钮点击事件
procedure CancelbtnClick(hBtn:HWND);
begin
  WizardForm.CancelButton.Click;
end;

//************注册表*********************
Function regedit(): Boolean;
begin
if BtngetChecked(Finbtn) = True then
  Result :=BtngetChecked(Finbtn)
end;
//***********添加桌面快捷方式***************
Function desktop(): Boolean;
begin
  if BtngetChecked(Finbtn) = True then
  Result :=BtngetChecked(Finbtn)
end;
//************开始菜单栏*************
Function StartMenu(): Boolean;
begin
  if BtngetChecked(Finbtn) = True then
  Result :=BtngetChecked(Finbtn)
end;


function ShouldSkipPage(PageID: Integer): Boolean;
begin
if PageID=wpSelectComponents then    //跳过组件安装界面
  result := true;
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('bg00.png');

ExtractTemporaryFile('bg01t.png');
ExtractTemporaryFile('bg02t.png');
ExtractTemporaryFile('bg03t.png');

ExtractTemporaryFile('bg01.png');
ExtractTemporaryFile('bg02.png');
ExtractTemporaryFile('bg03.png');
ExtractTemporaryFile('bg_cancel.png');
ExtractTemporaryFile('change.png');
ExtractTemporaryFile('close.png');
ExtractTemporaryFile('mini.png');
ExtractTemporaryFile('install.png');
ExtractTemporaryFile('cancel_ok.png');
ExtractTemporaryFile('cancel_back.png');
ExtractTemporaryFile('Pbbg.png');
ExtractTemporaryFile('Pbjd.png');
ExtractTemporaryFile('finish.png');
ExtractTemporaryFile('newfeather1.png');
ExtractTemporaryFile('newfeather2.png');
ExtractTemporaryFile('newfeather3.png');
ExtractTemporaryFile('newfeather4.png');
ExtractTemporaryFile('InstallingImage.htm');

WizardForm.BorderStyle:=bsnone
//主界面框大小
WizardForm.Width:=582
WizardForm.Height:=360
WizardForm.OnMouseDown:=@WizardFormMouseDown;
WizardFormcc;
CreateFrame;
//ShapeForm(WizardForm, radius);//圆角
WFButtonFont:=TFont.Create;
WFButtonFont.Name:='微软雅黑'
WFButtonFont.Size:=9;
//SetClassLong:=(Wizard.Handle,-26,GetWindowLong(WinzardForm.Handle,-26)+$20000);
WizardFormImage:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg01t.png'),(-10), (-10),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);

//卸载界面左下角文字
WizardForm.OuterNotebook.Hide;
WizardForm.Bevel.Hide;
WizardForm.BeveledLabel.Width := 0
WizardForm.BeveledLabel.Height := 0

//****************全局界面按钮****************
//最小化按钮
MinBtn:=BtnCreate(WizardForm.Handle,518,8,30,31,ExpandConstant('{tmp}\mini.png'),3,False);
BtnSetEvent(MinBtn,BtnClickEventID,WrapBtnCallback(@MinBtnOnClick,1));

//取消按钮
CancelBtn:=BtnCreate(WizardForm.Handle,543,8,30,31,ExpandConstant('{tmp}\close.png'),1,False)
BtnSetEvent(CancelBtn,BtnClickEventID,WrapBtnCallback(@CancelBtnClick,1));


//**************第一页字体和按钮******************


//**************第一页字体和按钮******************
Edit1 := TEdit.Create(WizardForm);
Edit1.Parent := WizardForm;
Edit1.Text := WizardForm.DirEdit.Text;//自定义目录文字
Edit1.Font.Size:=9
Edit1.Left := 23;
Edit1.Top := 306 ;
Edit1.Width :=340
Edit1.Height  :=14
Edit1.BorderStyle :=bsnone;
Edit1.Font.Color:=clBlack
Edit1.Font.Name:='微软雅黑'
Edit1.OnChange:=@Editchanged;

//“立即安装”按钮
nextbtn1:=BtnCreate(WizardForm.Handle,199,230,188,58,ExpandConstant('{tmp}\install.png'),1,False);
BtnSetEvent(nextbtn1,BtnClickEventID,WrapBtnCallback(@NextBtn1Click,1));
BtnSetFontColor(nextbtn1,clWhite,clWhite,clWhite,clWhite);

//浏览
DirBrowseBtn:=BtnCreate(WizardForm.Handle,504,305,60,20,ExpandConstant('{tmp}\change.png'),1,False);
BtnSetEvent(DirBrowseBtn,BtnClickEventID,WrapBtnCallback(@EditdirOnClick,1));
BtnSetFont(DirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(DirBrowseBtn,clWhite,clblack,clblack,clblack);
BtnSetText(DirBrowseBtn,ExpandConstant('更改'));
//**************磁盘大小显示*******************
WelTx1 := TLabel.Create(WizardForm);
WelTx1.AutoSize:=False;
WelTx1.SetBounds(18, 328, ScaleX(500), ScaleY(17));
WelTx1.Transparent:=True;
WelTx1.Font.Color :=clSilver;
WelTx1.Font.Size := 10
WelTx1.Font.Name:= '微软雅黑';
WelTx1.Caption := ExpandConstant('所需空间: ') + MbOrTB(176.62);
WelTx1.Parent := WizardForm;

WelTx2 := TLabel.Create(WizardForm);
WelTx2.AutoSize:=False;
WelTx2.SetBounds(160,328, ScaleX(500), ScaleY(17));
WelTx2.Transparent:=True;
WelTx2.Font.Color :=clSilver;
WelTx2.Font.Size := 10
WelTx2.Font.Name:= '微软雅黑';
WelTx2.Parent := WizardForm;
if GetSpaceOnDisk(ExtractFileDrive(WizardForm.DirEdit.Text), True, FreeMB, TotalMB) then
begin
WelTx2.Caption:=ExpandConstant('可用空间: ') + MbOrTB(FreeMB);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption; //更换磁盘后相应事件
//**************磁盘大小显示*******************


//百分比
PrLabel:=TLabel.Create(WizardForm);
PrLabel.Parent:=WizardForm;
PrLabel.Left:=27+48;
PrLabel.Top:=312;;                  //百分比
PrLabel.Transparent:=True;
PrLabel.Font.Name:='微软雅黑';
PrLabel.Font.Color:=clwhite;
PrLabel1:=TLabel.Create(WizardForm);
PrLabel1.Parent:=WizardForm;
PrLabel1.Left:=20;
PrLabel1.Top:=312;
PrLabel1.Caption:='正在安装';
PrLabel1.Transparent:=True;
PrLabel1.Font.Name:='微软雅黑';
PrLabel1.Font.Color:=clwhite;
PBOldProc:=SetWindowLong(WizardForm.ProgressGauge.Handle,-4,PBCallBack(@PBProc,4));


end;

//**************取消对话框************************
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
var
  CancelLabel2: Tlabel;
  CancelLabel3: Tlabel;
begin
  Cancel := False;
  Confirm := False;
  CancelForm := CreateCustomForm();
  CancelForm.Width := ScaleX(350);        //退出安装对话框大小
  CancelForm.Height := ScaleY(181+15);
  CancelForm.BorderStyle:=bsNone;
  CancelForm.CenterInsideControl(WizardForm, False);
  CancelForm.OnMouseDown:=@CancelFormMouseDown;
  CancelImage:=ImgLoad(CancelForm.Handle,ExpandConstant('{tmp}\bg_cancel.png'),(0),(0),350,181,True,True);   //退出安装对话框 图片
  ShapeForm(CancelForm, radius);
  //关闭按钮
  CancelCloseBtn:=BtnCreate(CancelForm.Handle,316,3,30,31,ExpandConstant('{tmp}\close.png'),3,False); //退出安装对话框右上角 按钮
  BtnSetEvent(CancelCloseBtn,BtnClickEventID,WrapBtnCallback(@CancelCloseBtnOnClick,1));
  //确认键反馈
  OKButton := TButton.Create(CancelForm);
  OKButton.Parent := CancelForm;
  OKButton.ModalResult := mrOk;
  OKButton.SetBounds(0, 0, 0, 0);
  //退出安装“确定”按钮
  OKBtn:=BtnCreate(CancelForm.Handle,172,144,80,26,ExpandConstant('{tmp}\cancel_ok.png'),1,False);
  BtnSetEvent(OKBtn,BtnClickEventID,WrapBtnCallback(@OKBtnOnClick,1));
  BtnSetFont(OKBtn,WFButtonFont.Handle);
  BtnSetFontColor(OKBtn,clwhite,clwhite,clwhite,clwhite);       //字体颜色
  BtnSetText(OKBtn,ExpandConstant('确定'));
  //退出安装“取消”按钮
  CancelFormBtn:=BtnCreate(CancelForm.Handle,262,144,80,26,ExpandConstant('{tmp}\cancel_back.png'),1,False);
  BtnSetEvent(CancelFormBtn,BtnClickEventID,WrapBtnCallback(@CancelBtnOnClick,1));
  BtnSetFont(CancelFormBtn,WFButtonFont.Handle);
  BtnSetFontColor(CancelFormBtn,clwhite,clwhite,clwhite,clwhite);        //字体颜色
  BtnSetText(CancelFormBtn,ExpandConstant('取消'));

  ImgApplyChanges(CancelForm.Handle);

  if CancelForm.ShowModal = mrOK then
  begin
   Cancel := True;
  end
 
end;

//****************页面切换****************
procedure CurPageChanged(CurPageID: Integer);
begin
  WizardForm.NextButton.Width:=0;
  WizardForm.NextButton.TabStop:=false
  WizardForm.CancelButton.Width:=0;
  WizardForm.CancelButton.TabStop:=false
  WizardForm.BackButton.Width:=0;
  WizardForm.BackButton.TabStop:=false
  BtnSetVisibility(backBtn,false);BtnSetVisibility(DirBrowseBtn,false);
  BtnSetVisibility(Startbtn,false);BtnSetVisibility(MinBtn,True);
  WelTx1.hide;WelTx2.hide;
  Edit1.hide;
  PrLabel.hide;PrLabel1.hide;
  BtnSetVisibility(nextbtn1,false);
if CurPageID = wpWelcome then
  begin
  WizardFormImage:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg01t.png'),(-10), (-10),602,380,True,True);
  BtnSetVisibility(nextbtn1,true);
  BtnSetVisibility(Startbtn,true);
  BtnSetVisibility(DirBrowseBtn,true);
  Edit1.show;
  WelTx1.show;WelTx2.show;
  end;
if CurPageID = wpInstalling then
  begin
  WizardFormImage:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg02t.png'),(-10), (-10),602,380,True,True);
  pbbgImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\Pbbg.png'),20,327,544,25,True,True);
  pbImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\Pbjd.png'),0,0,99,25,True,True);
  InstallingImage := NewWebWnd(WizardForm.Handle,0,56,582,231);
  DisplayHTMLPage(InstallingImage, ExpandConstant('{tmp}\InstallingImage.htm'));
  WebWndSetParent(InstallingImage, WizardForm.Handle)
  PrLabel.show;PrLabel1.show;
  end;
if CurPageID = wpFinished then
  begin
  WebWndSetParent(InstallingImage, WizardForm.FinishedPage.Handle);
  ImgSetVisibility(pbImg,false);ImgSetVisibility(pbbgImg,false);
  WizardFormImage:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bg03t.png'),(-10), (-10),602,380,True,True);
  Finbtn:=BtnCreate(WizardForm.Handle,195,297,188,58,ExpandConstant('{tmp}\finish.png'),1,False) //完成按钮
  BtnSetEvent(Finbtn,BtnClickEventID,WrapBtnCallback(@FinbtnClick,1));
  BtnSetEvent(CancelBtn,BtnClickEventID,WrapBtnCallback(@FinbtnClick,1));
  end;
 
ImgApplyChanges(WizardForm.Handle);
end;

procedure DeinitializeSetup();
begin
gdipShutdown;  //背景图
if PBOldProc<>0 then SetWindowLong(WizardForm.ProgressGauge.Handle,-4,PBOldProc);
end;

//安装结束,点"完成"之后运行程序
procedure CurStepChanged(CurStep: TSetupStep);
var
RCode: Integer;
begin
if (CurStep=ssDone)then
     Exec(ExpandConstant('{app}\Program\Thunder.exe'), '', '', SW_SHOW, ewNoWait, RCode);
end;
分享到:
评论

相关推荐

    【innoSetup反向打包】innoextract

    Inno Setup是一个为Microsoft Windows应用程序创建安装程序的工具。innoextract允许在非Windows系统下提取此类安装程序,而无需使用wine运行实际的安装程序。innoextract 目前支持由 Inno Setup 1.2.10 到 6.2.1 ...

    innosetup界面美化工具.zip

    解压压缩包中的 Inno Setup 5.5.zip,运行Inno Setup 5.5\Inno Setup 5\Compil32.exe,右上角可以改变语言。 打开build.iss文件,一些自定义字段请按需修改,点击Inno Setup工具栏中的 ‘绿色小三角’ 来运行脚本,...

    Inno Setup 6.1.2以及中文语言包

    Inno Setup 是一款免费的安装包制作软件,操作简单、功能稳定,能够快速制作出标准Windows风格的安装界面,足以完成一般安装任务。使用Inno Setup打包可执行的exe软件,可在任何电脑中运行。

    Inno Setup 6.2.1以及中文语言包

    Inno setup是一款简便安装包工具,支持pascal脚本,几分钟就能生成标准Windows安装包。资源包括加密dll以及中文语言包

    Inno Setup 中文教程

    Inno Setup 打包软件中文教程

    inno解包工具,可解加密的inno setup安装程序

    可解加密的inno setup安装程序,可解加密的inno setup安装程序

    InnoSetup实现多安装目录

    InnoSetup 多安装目录

    InnoSetup 获取本机IP地址

    InnoSetup 获取本机IP地址的方法

    inno setup中文语言包

    inno setup 中文语言包,放在安装文件夹的languages文件夹下。 [Languages] Name: "chinese"; MessagesFile: "compiler:Languages\Chinese.isl

    Inno Setup:windows下安装程序制作软件,及打包模板

    Inno Setup是一款免费的安装程序制作工具,用于创建Windows平台下的安装程序。它具有易于使用、功能强大、灵活性高等特点,是Windows安装程序制作的首选工具之一。 Inno Setup使用Pascal脚本语言编写,因此对于...

    innosetup安装界面美化.zip

    innosetup安装界面美化、卸载界面美化资源文件包,附带psd文件,脚本文件;可灵活diy;注:图片的尺寸不可更改,更改的话iss文件也需要做处理!

    inno setup自定义安装界面

    自己替换app目录下的...注意:必须要用inno setup增强版封装,该资源包包含对.net FormWork 4 的封装。{code} 文件夹下的 Code.iss 是界面代码,version.h 是配置文件 可以在里面修改应用名称,公司 、版本号等信息。

    InnoSetup 简体中文语言文件ChineseSimplified.isl

    InnoSetup 简体中文语言文件ChineseSimplified.isl

    inno setup 5脚本实现检测进程是否运行并结束

    Inno Setup是一款Windows免费的安装制作软件,Inno Setup功能强大,制作快速,对于一般的Windows安装制作都能够快速地完成,并且Inno Setup软件小巧、操作简便、界面精美,功能齐全,受到了很多用户的喜爱,是一款很...

    Inno Setup 5.5.1 汉化增强版

    Inno Setup 5.5.1 汉化增强版 安装制作

    InnoSetup汉化语言包

    用inno setup进行打包安装的汉化文件,把 chinese.isl放到安装目录下的语言包里

    Inno Setup + 语言包

    Inno Setup + 各国的语言包

    innosetup禁止中文安装路径

    innosetup禁止中文安装路径脚本代码,可以在安装时禁止用户选择中文路径

    inno setup中文PDF文档

    inno setup中文帮助文档,PDF 版本,中文版 Inno Setup用Delphi写成,其官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。Inno Setup是一个免费的...

    inno setup 增强版

    免费易用的安装包制作工具Inno Setup,除了Windows2000风格的安装界面,还支持类似QQ安装界面。

Global site tag (gtag.js) - Google Analytics