Inno setup 常用修改技巧

来源:互联网 发布:教育平台软件开发 编辑:程序博客网 时间:2024/05/18 03:15

http://www.cnblogs.com/awei0611/archive/2010/06/09.html



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

[delphi] view plaincopy
  1. [code]  
  2. procedure InitializeWizard();  
  3. begin  
  4. WizardForm.LICENSEACCEPTEDRADIO.Checked := true;  
  5. end;  


2、自定义安装程序右上角图片大小 
[delphi] view plaincopy
  1. [code]  
  2. procedure InitializeWizard();  
  3. begin  
  4. WizardForm.WizardSmallBitmapImage.width:=150//设置页眉图片的大小  
  5. WizardForm.WizardSmallBitmapImage.left:=WizardForm.width-150//设置左边页眉留出的空隙  
  6. WizardForm.PAGENAMELABEL.width:=0//设置标题文字显示的大小  
  7. WizardForm.PAGEDESCRIPTIONLABEL.width:=0//设置标题文字显示的大小  
  8. end;  


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


3、自定义BeveledLabel显示代码 
[delphi] view plaincopy
  1. [code]  
  2. procedure InitializeWizard();  
  3. begin  
  4. WizardForm.BeveledLabel.Enabled:=true//允许显示  
  5. WizardForm.BeveledLabel.Font.Color:=$00058451;; //显示颜色  
  6. WizardForm.BeveledLabel.Font.Style := WizardForm.BeveledLabel.Font.Style + [fsBold]; //显示字体  
  7. WizardForm.BeveledLabel.Left:=5//显示位置  
  8. end;  


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


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


6、定义[Messages]的颜色 
[delphi] view plaincopy
  1. [code]  
  2. procedure InitializeWizard();  
  3. begin  
  4. WizardForm.BeveledLabel.Enabled:= True;  
  5. WizardForm.BeveledLabel.Font.Color:= clblue;  
  6. end;  


7、不显示一些特定的安装界面 
[delphi] view plaincopy
  1. [code]  
  2. function ShouldSkipPage(PageID: Integer): Boolean;   
  3. begin   
  4. if PageID=wpReady then   
  5. result := true;   
  6. end;  
  7. (*  
  8. wpReady  是准备安装界面  
  9. PageID查询 INNO帮助中的 Pascal 脚本: 事件函数常量  
  10. 预定义向导页 CurPageID 值  
  11. 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段}

(* *)   实例 —— {大括号    多用在code段}
注释符号均在英文输入法状态下输入
11、在运行卸载程序前显示弹出式消息 

[delphi] view plaincopy
  1. [code]  
  2. function InitializeUninstall(): Boolean;  
  3. begin  
  4. if MsgBox('', mbConfirmation, MB_YESNO) = IDYES then  
  5. result:=true  
  6. else  
  7. result:=false;  
  8. end;  


12、安装、卸载时判断是否程序正在运行,卸载完成时自动打开网页 
[delphi] view plaincopy
  1. [code]  
  2. var  
  3. ErrorCode: Integer;  
  4. IsRunning: Integer;  
  5. // 安装时判断客户端是否正在运行     
  6. function InitializeSetup(): Boolean;     
  7. begin     
  8. Result :=true;  //安装程序继续     
  9. IsRunning:=FindWindowByWindowName('东方宽频网络电视');     
  10. while IsRunning<>0 do    
  11. begin     
  12. if Msgbox('安装程序检测到客户端正在运行。'  #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then     
  13. begin     
  14. Result :=false//安装程序退出     
  15. IsRunning :=0;     
  16. end else begin     
  17. Result :=true;  //安装程序继续     
  18. IsRunning:=FindWindowByWindowName('东方宽频网络电视');     
  19. end;     
  20. end;     
  21. end;     
  22. // 卸载时判断客户端是否正在运行     
  23. function InitializeUninstall(): Boolean;     
  24. begin     
  25. Result :=true;  //安装程序继续     
  26. IsRunning:=FindWindowByWindowName('东方宽频网络电视');     
  27. while IsRunning<>0 do    
  28. begin     
  29.   
  30. if Msgbox('安装程序检测到客户端正在运行。'  #13#13 '您必须先关闭它然后单击“是”继续安装,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then     
  31. begin     
  32. Result :=false//安装程序退出     
  33. IsRunning :=0;     
  34. end else begin     
  35. Result :=true;  //安装程序继续     
  36. IsRunning:=FindWindowByWindowName('东方宽频网络电视');       
  37. end;     
  38. end;     
  39. end;     
  40. procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);     
  41. begin     
  42. case CurUninstallStep of     
  43. usUninstall:       
  44. begin // 开始卸载     
  45. end;     
  46. usPostUninstall:     
  47. begin      // 卸载完成     
  48. // MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);     
  49. // ...insert code to perform post-uninstall tasks here...     
  50. ShellExec('open''http://www.dreams8.com''''', SW_SHOWNORMAL, ewNoWait, ErrorCode);     
  51. end;     
  52. end;     
  53. end;     


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


14、BorderStyle
TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin);
无边界式(bsNone)  ,单边固定式(bsSingle),双边可变式(bsSizeable),对话框式(bsDialog)
15、if   else
[delphi] view plaincopy
  1. function NextButtonClick(CurPageID: Integer): Boolean;   
  2. var   
  3. ResultCode: Integer;   
  4. begin   
  5. Result := True;   
  6. if (CurPageID = wpSelectDir) then   
  7. begin   
  8. MsgBox('AAAA', mbInformation, MB_OK);   
  9. end   
  10. else   
  11. begin   
  12. MsgBox('BBBB', mbInformation, MB_OK);   
  13. end;   
  14. end;  


16、安装结束界面增加“设为首页”选项
[delphi] view plaincopy
  1. [Tasks]  
  2. Name: changestartpage; Description: "设置vistaqq为默认主页"  
  3. [Registry]  
  4. Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\Main"; ValueType: string; ValueName: "Start Page"; ValueData: "http://www.vistaqq.com"; tasks: changestartpage  


17、添加“关于”和网站链接按钮
[delphi] view plaincopy
  1. [Code]  
  2. procedure URLLabelOnClick(Sender: TObject);  
  3. var  
  4. ErrorCode: Integer;  
  5. begin  
  6. ShellExec('open''http://www.vistaqq.com''''', SW_SHOWNORMAL, ewNoWait, ErrorCode);  
  7. end;  
  8. procedure AboutButtonOnClick(Sender: TObject);  
  9. begin  
  10. MsgBox(#13 'Vista 状态条风格盘符' #13 #13'本软件由jinn制作,希望各位登陆中天VIP工作室!' #13#13 '版权所有 (C)  中天VIP工作室', mbInformation, MB_OK);  
  11. end;  
  12. var  
  13. AboutButton, CancelButton: TButton;  
  14. URLLabel: TNewStaticText;  
  15. procedure InitializeWizard();  
  16. begin  
  17. { Create the pages }  
  18. WizardForm.PAGENAMELABEL.Font.Color:= clred;  
  19. WizardForm.PAGEDESCRIPTIONLABEL.Font.Color:= clBlue;  
  20. WizardForm.WELCOMELABEL1.Font.Color:= clGreen;  
  21. WizardForm.WELCOMELABEL2.Font.Color:= clblack;  
  22. CancelButton := WizardForm.CancelButton;  
  23. AboutButton := TButton.Create(WizardForm);  
  24. AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;  
  25. AboutButton.Top := CancelButton.Top;  
  26. AboutButton.Width := CancelButton.Width;  
  27. AboutButton.Height := CancelButton.Height;  
  28. AboutButton.Caption := '&About';  
  29. AboutButton.OnClick := @AboutButtonOnClick;  
  30. AboutButton.Parent := WizardForm;  
  31. URLLabel := TNewStaticText.Create(WizardForm);  
  32. URLLabel.Caption := '中天VIP工作室';  
  33. URLLabel.Cursor := crHand;  
  34. URLLabel.OnClick := @URLLabelOnClick;  
  35. URLLabel.Parent := WizardForm;  
  36. { Alter Font *after* setting Parent so the correct defaults are inherited first }  
  37. URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];  
  38. URLLabel.Font.Color := clBlue;  
  39. URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;  
  40. URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);  
  41. end;  


18、去掉安装程序左上角“关于安装程序”的代码
[delphi] view plaincopy
  1. procedure InitializeWizard();  
  2. begin  
  3. WizardForm.BorderIcons:= [biMinimize];  
  4. end;  
  5. procedure CurPageChanged(CurPage: Integer);  
  6. begin  
  7. if CurPage=wpWelcome then  
  8. WizardForm.BorderIcons:= [biSystemMenu, biMinimize];  
  9. end;  
  10. 或者  
  11. procedure InitializeWizard();  
  12. begin  
  13. WizardForm.BORDERICONS := [biHelp, biSystemMenu, biMinimize];  
  14. end;  


19、自定义BeveledLabel文字
[Messages]
BeveledLabel=中天VIP工作室
20、自定义安装程序界面左上角“安装”文字
[message]
SetupAppTitle=需要的字
SetupWindowTitle=需要的字
21、自定义安装程序版本号
VersionInfoVersion=1.1
VersionInfoTextVersion=1.1



0 0