加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

一个比较完整的Inno Setup 安装脚本

发布时间:2020-12-15 09:56:41 所属栏目:大数据 来源:网络整理
导读:转自:http://blog.csdn.net/ahao1985507/article/details/39182977 一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了。 [plain] ? view plain copy [Setup]?? ;?注:?AppId的值为单独标识该应用程序。?? ;?不要

转自:http://blog.csdn.net/ahao1985507/article/details/39182977


一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了。

[plain]? view plain copy
  1. [Setup]??
  2. ;?注:?AppId的值为单独标识该应用程序。??
  3. ;?不要为其他安装程序使用相同的AppId值。??
  4. ;?(生成新的GUID,点击?工具|在IDE中生成GUID。)??
  5. AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675}??
  6. ;程序名??
  7. AppName=ISsample??
  8. ;版本号??
  9. AppVerName=ISsample?1.0.0.0??
  10. ;发布者名??
  11. AppPublisher=Hkiss??
  12. ;相关连接??
  13. AppPublisherURL=http://zwkufo.blog.163.com??
  14. AppSupportURL=http://zwkufo.blog.163.com??
  15. AppUpdatesURL=http://zwkufo.blog.163.com??
  16. ;默认安装目录??
  17. DefaultDirName={pf}ISsample??
  18. ;默认开始菜单名??
  19. DefaultGroupName=ISsample??
  20. ;是否打开->可选安装开始菜单项??
  21. ;AllowNoIcons=yes??
  22. ;安装协议??
  23. ;LicenseFile=C:Example原始文件agreement.txt??
  24. ;安装前查看的文本文件??
  25. ;InfoBeforeFile=C:Example原始文件Setup_New.txt??
  26. ;安装后查看文本文件??
  27. ;InfoAfterFile=C:Example原始文件Setup_Old.txt??
  28. ;输出文件夹??
  29. OutputDir=C:ExampleInnoSetupout??
  30. ;输出文件名??
  31. OutputBaseFilename=setup??
  32. ;安装图标??
  33. SetupIconFile=C:Example原始文件title.ico??
  34. ;安装需要输入密码??
  35. ;Password=123??
  36. ;Encryption=yes??
  37. ??
  38. ;压缩相关??
  39. Compression=lzma??
  40. SolidCompression=yes??
  41. ;可以让用户忽略选择语言相关??
  42. ShowLanguageDialog?=?yes??
  43. ;备注版本信息??
  44. VersionInfoCompany=HTTP://www.Hkiss.COM??
  45. VersionInfoDescription=ISsample?汉化增强版??
  46. VersionInfoVersion=1.0.0.0??
  47. VersionInfoCopyright=Copyright?(C)?2007-2008?Hkiss??
  48. ;制作选择语言??
  49. [Languages]??
  50. Name:?"chs";?MessagesFile:?"compiler:Default.isl"?;LicenSeFile?:"C:Example原始文件chsagreement.txt"??
  51. Name:?"en";?MessagesFile:?"compiler:LanguagesEnglish.isl";LicenSeFile?:"C:Example原始文件enagreement.txt"??
  52. ??
  53. ;用户定制任务??
  54. [Tasks]??
  55. Name:?"desktopicon";?Description:?"{cm:CreateDesktopIcon}";?GroupDescription:?"{cm:AdditionalIcons}";?Flags:?unchecked??
  56. Name:?"quicklaunchicon";?Description:?"{cm:CreateQuickLaunchIcon}";?GroupDescription:?"{cm:AdditionalIcons}";?Flags:?unchecked??
  57. Name:?"Tasks_1"?;?Description:"用户自定义任务1";?Flags:?unchecked??
  58. Name:?"Tasks_2"?;?Description:"用户自定义任务2";?Flags:?unchecked??
  59. ;选择了组件才会出现的定制任务??
  60. Name:?"Tasks_3"?;?Description:"用户自定义任务3";Components:?c1?;?Flags:?unchecked??
  61. ;文件安装??
  62. [Files]??
  63. ;多语言安装环境设置????公共参数Languages?来设置??
  64. Source:?"C:Example原始文件enfile.txt";?DestDir:?"{app}";?Languages:?en?;?Flags:?ignoreversion??
  65. Source:?"C:Example原始文件chsfile.txt";?DestDir:?"{app}";?Languages:?chs?;?Flags:?ignoreversion??
  66. ;用户自定义任务?Tasks??
  67. Source:?"C:Example原始文件Taskstasks_1.txt";?DestDir:?"{app}Tasks";?Flags:?ignoreversion?;Tasks?:?Tasks_1??
  68. Source:?"C:Example原始文件Taskstasks_2.txt";?DestDir:?"{app}Tasks";?Flags:?ignoreversion?;Tasks?:Tasks_2??
  69. Source:?"C:Example原始文件Taskstasks_Components.txt";?DestDir:?"{app}Tasks";?Flags:?ignoreversion?;Tasks?:Tasks_2??
  70. ;用户定义组件安装??
  71. Source:?"C:Example原始文件ComponentsComponents_1.txt";?DestDir:?"{app}Components";?Flags:?ignoreversion?;?Components:?a1;??
  72. Source:?"C:Example原始文件ComponentsComponents_2.txt";?DestDir:?"{app}Components";?Flags:?ignoreversion?;?Components:?a2;??
  73. Source:?"C:Example原始文件ComponentsComponents_3.txt";?DestDir:?"{app}Components";?Flags:?ignoreversion?;?Components:?a3;??
  74. Source:?"C:Example原始文件ComponentsComponents_4.txt";?DestDir:?"{app}Components";?Flags:?ignoreversion?;?Components:?a1?a2?a3;??
  75. ;用户注册自定义Dll文件??????regserver?注册?noregerror?不显示错误信息??
  76. Source:?"C:Example原始文件jmail.dll";?DestDir:?"{app}";?Flags:?ignoreversion?regserver??
  77. ;添加自述文件??
  78. Source:?"C:Example原始文件ISsample.txt";?DestDir:?"{app}";?Flags:?ignoreversion??
  79. ;添加一个文件到缓存文件夹{Tmp}?deleteafterinstall?安装后删除??
  80. Source:?"C:Example原始文件test.exe";?DestDir:?"{tmp}";?Flags:?ignoreversion?deleteafterinstall??
  81. Source:?"C:Example原始文件ISsample.chm";?DestDir:?"{app}";?Flags:?ignoreversion??
  82. Source:?"C:Example原始文件ISsample.exe";?DestDir:?"{app}";?Flags:?ignoreversion??
  83. Source:?"C:Example原始文件ISsample.dll";?DestDir:?"{app}";?Flags:?ignoreversion??
  84. Source:?"C:Example原始文件ISsample.ini";?DestDir:?"{app}";?Flags:?ignoreversion??
  85. Source:?"C:Example原始文件ISsample.rar";?DestDir:?"{app}";?Flags:?ignoreversion??
  86. Source:?"C:Example原始文件ISsample_sys.dll";?DestDir:?"{win}System32";?Flags:?ignoreversion??
  87. Source:?"C:Example原始文件log*";?DestDir:?"{app}log";?Flags:?ignoreversion?recursesubdirs?createallsubdirs??
  88. ;?注意:?不要在任何共享系统文件上使用“Flags:?ignoreversion”??
  89. ;安装类型设置??
  90. [Types]??
  91. Name:?Full?;Description:"完全安装";?Flags:?iscustom??
  92. Name:?Compact?;Description:"简洁安装";??
  93. Name:?Custom;?Description:"自定义安装";??
  94. ;组件安装??
  95. [Components]??
  96. Name:?c1;?Description:?"自定义任务3"?;?Types:?Full??
  97. Name:?a1;?Description:?"安装Components_1";?Types:?Full?Compact?Custom?;??
  98. Name:?a2;?Description:?"安装Components_2";?Types?:?Full???Compact??
  99. Name:?a3;?Description:?"安装Components_3";?Types?:?Full??
  100. ;开始菜单,桌面快捷方式??
  101. [Icons]??
  102. Name:?"{group}ISsample";?Filename:?"{app}ISsample.exe"??
  103. Name:?"{group}{cm:ProgramOnTheWeb,ISsample}";?Filename:?"http://zwkufo.blog.163.com"??
  104. Name:?"{group}{cm:UninstallProgram,ISsample}";?Filename:?"{uninstallexe}"??
  105. Name:?"{commondesktop}ISsample";?Filename:?"{app}ISsample.exe";?Tasks:?desktopicon??
  106. Name:?"{userappdata}MicrosoftInternet?ExplorerQuick?LaunchISsample";?Filename:?"{app}ISsample.exe";?Tasks:?quicklaunchicon??
  107. ;添加一个帮助文挡??
  108. Name:?{group}ISsample?1.0.0.0?帮助文档;Filename:?{app}ISsample.chm??
  109. ;用来在程序安装完成后?在安装程序显示最终对话框之前执行程序?常用与运行主程序?显示自述文件?删除临时文件??
  110. [Run]??
  111. Filename:?"{app}ISsample.exe";?Description:?"{cm:LaunchProgram,ISsample}";?Flags:?nowait?postinstall?skipifsilent??
  112. Filename:?"{app}ISsample.txt";?Description:?"查看显示自述文件";?Flags:?postinstall?skipifsilent?shellexec??
  113. ;更改显示在程序中显示的消息文本??
  114. [Messages]??
  115. BeveledLabel=HKiss科技??
  116. ;卸载对话框说明??
  117. ConfirmUninstall=您真的想要从电脑中卸载ISsample吗?%n%n按?[是]?则完全删除?%1?以及它的所有组件;%n按?[否]则让软件继续留在您的电脑上.??
  118. ;定义解压说明??
  119. ;StatusExtractFiles=解压并复制主程序文件及相关库文件...??
  120. ;用于在用户系统中创建,修改或删除ini文件健值??
  121. [INI]??
  122. Filename:?"{app}cfg.ini";?Section:?"Startup?Options";?Flags:?uninsdeletesection??
  123. Filename:?"{app}cfg.ini";?Section:?"Startup?Options";?Key:?"server?ip";?String:?"127.0.0.1"??
  124. Filename:?"{app}cfg.ini";?Section:?"Startup?Options";?Key:?"server?port";?String:?"8080"??
  125. ;用于在用户系统中创建,修改或删除注册表健值??
  126. [Registry]??
  127. Root:?HKLM?;SubKey:"SoftwareISsample";ValueType:dword;ValueName:config;ValueData:10?;Flags:uninsdeletevalue??
  128. ;在执行脚本??
  129. [code]??
  130. //全局变量??
  131. var?MyProgChecked:?Boolean;??
  132. //判断程序是否存在??
  133. //初始华程序事件??
  134. function?InitializeSetup():?boolean;??
  135. var?Isbl:?boolean;?????????//声明变量??
  136. var?Isstr:?string;??
  137. begin???????//开始??
  138. Isbl?:=?true;?????????????//变量赋值??
  139. Isstr?:=?'欢迎';??
  140. if?RegValueExists(HKEY_LOCAL_MACHINE,?'SOFTWAREISsample',?'config')?then??
  141. begin??
  142. ????MsgBox('已安装过,请先卸载在安装',mbConfirmation,?MB_OK);??
  143. ????isbl?:=?false;??
  144. end?else??
  145. ???//MsgBox('无值',248)"> ?????isbl?:=?true;??
  146. end;??
  147. //下面是个麻烦的?条件语句?end?else?注意??
  148. //if?MsgBox(Isstr,?mbConfirmation,?MB_OKCANCEL)?=?IDOK?then??
  149. //begin??
  150. //?isbl?:=?true;??
  151. //?MsgBox('执行了',248)"> //end?else??
  152. //?isbl?:=?false;??
  153. //MsgBox('执行了',248)"> //end;??
  154. Result?:=?Isbl;??
  155. end;???????//结束??
  156. procedure?CurStepChanged(CurStep:?TSetupStep);??
  157. var?Isstr?:string;??
  158. begin??
  159. if?CurStep=ssInstall?then???????//实际安装前调用??
  160. ????//MsgBox('CurStepChanged:实际安装前调用',?MB_OKCANCEL);???????????//安装完成后调用??
  161. if?CurStep=ssPostInstall?then??
  162. ????Isstr?:=?ExpandConstant('{tmp}tmp.rar');??
  163. //????if?FileExists(Isstr)?then??
  164. //????begin??
  165. //??????MsgBox('文件存在',248)"> //????end?else??
  166. //????begin??
  167. //??????MsgBox('文件不存在',?MB_OK);??
  168. //????end;??
  169. ???//?MsgBox('CurStepChanged:实际安装后调用',?MB_OKCANCEL);??
  170. end;??
  171. //下一步?按钮按钮?事件??
  172. function?NextButtonClick(CurPageID:?Integer):?Boolean;??
  173. var?ResultCode:?Integer;??
  174. var?IsSetup?:?Boolean;??
  175. IsSetup?:=?true?;??
  176. case?CurPageID?of??
  177. ????wpSelectDir:??
  178. ???????MsgBox('NextButtonClick:'?#13#13?'You?selected:?'''?+?WizardDirValue?+?'''.',?mbInformation,?MB_OK);???//WizardDirValue路径??
  179. ????wpSelectProgramGroup:??
  180. ???????MsgBox('NextButtonClick:'?#13#13?'You?selected:?'''?+?WizardGroupValue?+?'''.',?MB_OK);?//开始菜单名??
  181. ????wpReady:??
  182. ??????begin??
  183. ???????if?not?RegValueExists(HKEY_LOCAL_MACHINE,?'SOFTWARETest',?'config')?then???begin??
  184. ??????????if?MsgBox('程序执行需要Test.ext,是否安装!',?MB_YESNO)?=?idYes?then?begin??
  185. ???????????ExtractTemporaryFile('test.exe');??
  186. ????????????if?not?Exec(ExpandConstant('{tmp}test.exe'),?'',?SW_SHOWNORMAL,?ewWaitUntilTerminated,?ResultCode)?then??
  187. ??????????????MsgBox('Test.exe出错:'?#13#13?'?'?+?SysErrorMessage(ResultCode)?+?'.',?mbError,248)"> ??????????end?else?begin??
  188. ????????????????IsSetup?:=?false?;??
  189. ??????????end?;??
  190. ??????????BringToFrontAndRestore();??
  191. ????????end;??
  192. ??????end;??
  193. Result?:=?IsSetup;??
  194. end;??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读