Inno setup 常用修改技巧

来源:互联网 发布:翻倍牛股指标源码 编辑:程序博客网 时间:2024/05/17 20:24

1 、如何让协议许可页面默认选中我同意按钮

[code]procedure InitializeWizard();beginWizardForm.LICENSEACCEPTEDRADIO.Checked := true;end;
  • 1
  • 2
  • 3
  • 4
  • 5

2、自定义安装程序右上角图片大小

[code]procedure InitializeWizard();beginWizardForm.WizardSmallBitmapImage.width:=150; //设置页眉图片的大小WizardForm.WizardSmallBitmapImage.left:=WizardForm.width-150; //设置左边页眉留出的空隙WizardForm.PAGENAMELABEL.width:=0; //设置标题文字显示的大小WizardForm.PAGEDESCRIPTIONLABEL.width:=0; //设置标题文字显示的大小end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

或者 
//自定义安装向导小图片

[code]procedure InitializeWizard();beginWizardform.WizardSmallBitmapImage.left:= WizardForm.width-164; //自定义安装向导小图片显示位置WizardForm.WizardSmallBitmapImage.width:=164; //自定义安装向导小图片宽度Wizardform.PageNameLabel.width:= 495 - 164 -36; //这儿必须定义,数值根据图片宽度更改,显示软件名称的位置Wizardform.PageDescriptionLabel.width:= 495 - 164 -42; //显示页面信息的位置end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3、自定义BeveledLabel显示代码

[code]procedure InitializeWizard();beginWizardForm.BeveledLabel.Enabled:=true; //允许显示WizardForm.BeveledLabel.Font.Color:=$00058451; //显示颜色WizardForm.BeveledLabel.Font.Style := WizardForm.BeveledLabel.Font.Style + [fsBold]; //显示字体WizardForm.BeveledLabel.Left:=5; //显示位置end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4、自定义安装向导图片

[code]procedure InitializeWizard();beginWizardform.WELCOMELABEL1.left:= 18; //自定义欢迎页面标题1显示位置Wizardform.WELCOMELABEL2.left:= 18; //自定义欢迎页面标题2显示位置Wizardform.WizardBitmapImage.left:= WizardForm.width-164 //自定义安装向导图片显示位置(显示大小,此处为居右显示)end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

5、显示出组件选择框

[Types]Name: full; Description: 推荐Name: default; Description: 典型Name: custom; Description: 自定义; Flags: iscustom;告诉安装程序这个类型是自定义类型。必须定义iscustom这个参数,才能显示出组件选择框
  • 1
  • 2
  • 3
  • 4
  • 5

6、定义[Messages]的颜色

[code]procedure InitializeWizard();beginWizardForm.BeveledLabel.Enabled:= True;WizardForm.BeveledLabel.Font.Color:= clblue;end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

7、不显示一些特定的安装界面

[code]function ShouldSkipPage(PageID: Integer): Boolean; begin if PageID=wpReady then result := true; end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

wpReady 是准备安装界面 
PageID查询 INNO帮助中的 Pascal 脚本: 事件函数常量 
预定义向导页 CurPageID 值 
wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished

8、换行符号 
在 [Messages] 换行符号为%n 
在 MsgBox 中换行符号为 #13#10 //#13 为回车字符

9、颜色代码 
(1)一个值形如 $bbggrr, 这里的 rr, gg 和 bb 指定了两位的亮度值(以十六进制表示)分别为红色,绿色和蓝色。 
(2)预定义的颜色名称: 
clBlack(黑色),clMaroon(暗红),clGreen(绿色),clOlive(橄榄绿), 
clNavy(深蓝),clPurple(紫色),clTeal(深青),clGray(灰色), 
clSilver(浅灰),clRed(红色),clLime(浅绿),clYellow(黄色), 
clBlue(蓝色),clFuchsia(紫红),clAqua(青绿),clWhite(白色)。

10、inno代码注释符号 
; 实例 —— ; 分号 
// 实例 —— // 双斜杠 多用在code段 
{ } 实例 —— {大括号 多用在code段} 
注释符号均在英文输入法状态下输入

11、在运行卸载程序前显示弹出式消息

[code]function InitializeUninstall(): Boolean;beginif MsgBox('', mbConfirmation, MB_YESNO) = IDYES thenresult:=trueelseresult:=false;end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

12、安装、卸载时判断是否程序正在运行,卸载完成时自动打开网页

[code]varErrorCode: Integer;IsRunning: Integer;// 安装时判断客户端是否正在运行   function InitializeSetup(): Boolean;   begin   Result :=true; //安装程序继续   IsRunning:=FindWindowByWindowName('东方宽频网络电视');   while IsRunning<>0 do  begin       if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then       begin         Result :=false; //安装程序退出         IsRunning :=0;       end else begin         Result :=true; //安装程序继续         IsRunning:=FindWindowByWindowName('东方宽频网络电视');       end;   end;   end;   // 卸载时判断客户端是否正在运行   function InitializeUninstall(): Boolean;   begin      Result :=true; //安装程序继续   IsRunning:=FindWindowByWindowName('东方宽频网络电视');   while IsRunning<>0 do  begin       if Msgbox('安装程序检测到客户端正在运行。' #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then       begin         Result :=false; //安装程序退出         IsRunning :=0;       end else begin         Result :=true; //安装程序继续         IsRunning:=FindWindowByWindowName('东方宽频网络电视');         end;   end;   end;   procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);   begin   case CurUninstallStep of       usUninstall:           begin // 开始卸载         end;       usPostUninstall:         begin      // 卸载完成           // MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);           // ...insert code to perform post-uninstall tasks here...           ShellExec('open', 'http://www.dreams8.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);         end;   end;   end;   
  • 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

13、 删除文件和删除文件夹

//删除文件    用 DeleteFile 只能删除一个文件,不能使用通配符来删除多个文件DeleteFile(ExpandConstant('{app}\abc.exe'));//删除所有文件及文件夹DelTree(ExpandConstant('{app}'), True, True, False);
  • 1
  • 2
  • 3
  • 4

14、BorderStyle

TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin);无边界式(bsNone) ,单边固定式(bsSingle),双边可变式(bsSizeable),对话框式(bsDialog)
  • 1
  • 2

15、if else

function NextButtonClick(CurPageID: Integer): Boolean; var ResultCode: Integer; begin Result := True; if (CurPageID = wpSelectDir) then begin MsgBox('AAAA', mbInformation, MB_OK); end else begin MsgBox('BBBB', mbInformation, MB_OK); end; end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

16、安装结束界面增加“设为首页”选项

[Tasks]Name: changestartpage; Description: "设置vistaqq为默认主页"[Registry]Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\Main"; ValueType: string; ValueName: "Start Page"; ValueData: "http://www.vistaqq.com"; tasks: changestartpage
  • 1
  • 2
  • 3
  • 4

17、添加“关于”和网站链接按钮

[Code]procedure URLLabelOnClick(Sender: TObject);varErrorCode: Integer;beginShellExec('open', 'http://www.vistaqq.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);end;procedure AboutButtonOnClick(Sender: TObject);beginMsgBox(#13 'Vista 状态条风格盘符' #13 #13'本软件由jinn制作,希望各位登陆中天VIP工作室!' #13#13 '版权所有 (C) 中天VIP工作室', mbInformation, MB_OK);end;var    AboutButton, CancelButton: TButton;    URLLabel: TNewStaticText;procedure InitializeWizard();begin{ Create the pages }WizardForm.PAGENAMELABEL.Font.Color:= clred;WizardForm.PAGEDESCRIPTIONLABEL.Font.Color:= clBlue;WizardForm.WELCOMELABEL1.Font.Color:= clGreen;WizardForm.WELCOMELABEL2.Font.Color:= clblack;   CancelButton := WizardForm.CancelButton;     AboutButton := TButton.Create(WizardForm);     AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;     AboutButton.Top := CancelButton.Top;     AboutButton.Width := CancelButton.Width;     AboutButton.Height := CancelButton.Height;     AboutButton.Caption := '&About';     AboutButton.OnClick := @AboutButtonOnClick;     AboutButton.Parent := WizardForm;URLLabel := TNewStaticText.Create(WizardForm);    URLLabel.Caption := '中天VIP工作室';    URLLabel.Cursor := crHand;    URLLabel.OnClick := @URLLabelOnClick; URLLabel.Parent := WizardForm;    { Alter Font *after* setting Parent so the correct defaults are inherited first }    URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];    URLLabel.Font.Color := clBlue;    URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;    URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);end;
  • 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

18、去掉安装程序左上角“关于安装程序”的代码

procedure InitializeWizard();beginWizardForm.BorderIcons:= [biMinimize];end;procedure CurPageChanged(CurPage: Integer);beginif CurPage=wpWelcome thenWizardForm.BorderIcons:= [biSystemMenu, biMinimize];end;或者procedure InitializeWizard();beginWizardForm.BORDERICONS := [biHelp, biSystemMenu, biMinimize];end;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

19、自定义BeveledLabel文字

[Messages]BeveledLabel=中天VIP工作室
  • 1
  • 2

20、自定义安装程序界面左上角“安装”文字

[message]SetupAppTitle=需要的字SetupWindowTitle=需要的字
  • 1
  • 2
  • 3

21、自定义安装程序版本号

VersionInfoVersion=1.1VersionInfoTextVersion=1.1
  • 1
  • 2