参考博客:制作部署安装包:Inno Setup
参考资料:Inno Setup详细教程
参考资料:Innosetup使用详细全面教程
个人使用的 风铃夜思雨 的汉化版,版本:5.5.5
; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "xxxxxxxx" #define MyAppName1 "xxxxxx" #define MyAppName2 "xxxxxx" #define MyAppVersion "1.00" #define MyAppPublisher "xxx" #define MyAppURL "http://www.xxx.com/" #define MyAppExeName1 "xxxx.exe" #define MyAppExeName2 "xxxx.exe" ;这个段包含用于安装程序和卸载程序的全局设置 [Setup] ; 注: AppId的值为单独标识该应用程序。 ; 不要为其他安装程序使用相同的AppId值。 ; (生成新的GUID,点击 工具|在IDE中生成GUID。) AppId={{CF002CA5-9C74-491C-AF38-903CD91BF624} ;安装界面左上角程序名 AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} ;默认安装目录、默认安装目录名 DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} ;选择是否创建图标 AllowNoIcons= ;是否进行选择安装模式 AlwaysShowComponentsList= ;设置开始菜单文件夹名 AlwaysShowGroupOnReadyPage= AppCopyright=Copyright xxx AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} ;可重新修复软件 ;AppModifyPath=" ;资源管理器更改环境变量 ;ChangesEnvironment= ;提示输入用户信息 ;UserInfoPage= ;默认序列号 ;DefaultUserInfoSerial=serial ;密码 ;Password=pwd ;许可文档 ;LicenseFile=license.txt ;选择目标目录页签显示阅读文档 ;InfoBeforeFile=infobefore.txt ;安装完成后显示阅读文档 ;InfoAfterFile=infoafter.txt ;显示启动渐变背景 ;WindowVisible= ;安装程序使用“3D”选择框 FlatComponentsList= ;安装程序指定新图标 SetupIconFile=F:\xxx\xxx.ico ;卸载图标 ;UninstallDisplayIcon={app}\uninstall.ico OutputDir=F:\xxx OutputBaseFilename=xxx Compression=lzma SolidCompression=yes ;可选。用来定义安装程序向导在选择组件面时可供选择的所有安装类型 [Types] Name:"communication";Description:xxxx Name:"client";Description:xxxx ;可选。定义安装程序向导的选择组件页中显示的所有组件,以便于用户定制安装类型 [Components] Name:"communication";Description:{#MyAppName1};Types:communication Name:"client";Description:{#MyAppName2};Types:client [Languages] Name: "chinesesimp"; MessagesFile: "compiler:Default.isl" Name:"en";MessagesFile:"compiler:English.isl" ;可选。定义安装程序在执行安装期间所有由用户定制的任务。 [Tasks] Name: "desktopicon"; Description: ",6.1 ;定义安装程序安装文件到用户系统中的可选文段 [Files] Source: "F:\xxx\xxx\xxx.exe"; DestDir: "{app}"; Flags: ignoreversion;Components:communication Source: "F:\xxx\xxx\xxx.exe.config"; DestDir: "{app}"; Flags: ignoreversion ;Components:communication Source: "F:\xxx\xxx\xxx.exe"; DestDir: "{app}"; Flags: ignoreversion;Components:client Source: "F:\xxx\xxx\xxx.exe.config"; DestDir: "{app}"; Flags: ignoreversion ;Components:client ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion” ;定义所有创建在开始菜单和/或其他位置的快捷方式 ; Add the ISSkin DLL used for skinning Inno Setup installations. Source: compiler:ISSkin.dll; DestDir: {app}; Flags: dontcopy ; Add the Visual Style resource contains resources used for skinning, ; you can also use Microsoft Visual Styles (*.msstyles) resources. Source: compiler:IsSkins\Codejock.cjstyles; DestDir: {tmp}; Flags: dontcopy [Code] // Importing LoadSkin API from ISSkin.DLL procedure LoadSkin(lpszPath: AnsiString; lpszIniFileName: AnsiString); external 'LoadSkin@files:isskin.dll stdcall'; // Importing UnloadSkin API from ISSkin.DLL procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall'; // Importing ShowWindow Windows API from User32.DLL function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall'; function InitializeSetup(): Boolean; var Path:string ; ResultCode: Integer; dotNetV4RegPath:string; dotNetV4PackFile:string; begin ExtractTemporaryFile('Codejock.cjstyles'); LoadSkin(AnsiString(ExpandConstant('{tmp}\Codejock.cjstyles')), ''); //Result := True; dotNetV4RegPath:='SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full'; dotNetV4PackFile:='{src}\dotNetFx40_Full_x86_x64.exe'; if RegKeyExists(HKLM, dotNetV4RegPath) then begin Result := true; end else begin Path := ExpandConstant(dotNetV4PackFile); if(FileOrDirExists(Path)) then begin Exec(Path, '/qb', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); if RegKeyExists(HKLM, dotNetV4RegPath) then begin Result := true; end else begin MsgBox('未能成功安装.Net Framework4.0运行环境,系统将无法运行,本安装程序即将退出!',mbInformation,MB_OK); end end else begin MsgBox('没有安装.Net Framework4.0运行环境,系统将无法运行,本安装程序即将退出!',mbInformation,MB_OK); end end; end; procedure DeinitializeSetup(); begin // Hide Window before unloading skin so user does not get // a glimse of an unskinned window before it is closed. ShowWindow(StrToInt(ExpandConstant(); UnloadSkin(); end; [Icons] ;{group}开始菜单文件夹路径,由用户在安装程序的选择开始菜单文件夹向导页中选定 Name: "{group}\{#MyAppName1}"; Filename: "{app}\{#MyAppExeName1}";Components:communication ;{group}开始菜单文件夹路径,由用户在安装程序的选择开始菜单文件夹向导页中选定 Name: "{group}\{#MyAppName2}"; Filename: "{app}\{#MyAppExeName2}";Components:client ;{commondesktop}&{userdesktop}桌面文件夹路径 Name: "{commondesktop}\{#MyAppName1}"; Filename: "{app}\{#MyAppExeName1}"; Tasks: desktopicon;Components:communication ;{commondesktop}&{userdesktop}桌面文件夹路径 Name: "{commondesktop}\{#MyAppName2}"; Filename: "{app}\{#MyAppExeName2}"; Tasks: desktopicon;Components:client ;{uninstallexe}由安装程序提取的卸载程序的完整路径名 Name:"{group}\卸载{#MyAppName1}" ;Filename:"{uninstallexe}";IconFilename:"{app}\uninstall.ico";Components:communication ;{uninstallexe}由安装程序提取的卸载程序的完整路径名 Name:"{group}\卸载{#MyAppName2}" ;Filename:"{uninstallexe}";IconFilename:"{app}\uninstall.ico";Components:client ;可选。用来定义一些想用安装在用户系统中创建、修改或删除的注册表键/值。 ;按默认,用安装程序创建的注册表键和值在卸载时不删除。如果想让卸载程序删除键或值,必须包含 ;uninsdelete* 标记中的一个 [Registry] Root:HKLM;Subkey:"Software\xxx";Flags:uninsdeletekeyifempty Root:HKLM;Subkey:"Software\xxx\communication";Flags:uninsdeletekey;Components:communication Root:HKLM;Subkey:"Software\xxx\communication";ValueType:string;ValueName:"InstallPath";ValueData:"{app}";Components:communication Root:HKLM;Subkey:"Software\xxx\client";Flags:uninsdeletekey;Components:client Root:HKLM;Subkey:"Software\xxx\client";ValueType:string;ValueName:"InstallPath";ValueData:"{app}";Components:client [UninstallDelete] Type:filesandordirs;Name:"{app}\Log" Type:filesandordirs;Name:"{app}\ErrorTrace.xml" Type:filesandordirs;Name:"{app}\*.*" ;可选。指定程序完成安装后,在安装程序显示最终对话框之前要执行的程序数 [Run] Filename: "{app}\{#MyAppExeName1}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName1, '&', '&&')}}"; Flags: nowait postinstall skipifsilent;Components:communication Filename: "{app}\{#MyAppExeName2}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName2, '&', '&&')}}"; Flags: nowait postinstall skipifsilent;Components:client
Inno Setup 教程的更多相关文章
-
[!!!!!]Inno Setup教程-常见问题解答
[转]Inno Setup教程-常见问题解答 功能 * 翻译 Inno Setup 文字 * 它支持 MBCS (多字节字符集) 吗? * 将来会支持 Windows Installer 吗? ...
-
inno setup教程解释脚本
inno setup教程解释脚本 2007-04-08 21:31:36| 分类: 科技-> Inno Setu | 标签:inno |举报 |字号 订阅 下载LOFTER客户端 ...
-
Inno Setup教程
一.简介 Inno Setup是一款免费的安装制作软件,小巧.简便.精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务.该软件用Delp ...
-
inno setup详细使用教程
前段时间我完成了几个软件的汉化,想把它们打包起来,可是苦于我是一个很菜的鸟,很笨的瓜,只好上网找关于安装程序制作的文章.不幸我没能找到:-( 没法只好自己去华军软件园里找找制作安装程序的软件,并一把下 ...
-
Inno setup 简单打包教程
转自:http://blog.csdn.net/ruifangcui7758/article/details/6662646 前段时间关注了VC6.0自带的Installshield打包的使用方法,感 ...
-
开源Inno Setup官网下载、安装、打包教程(官网安装向导中文语言包)
安装Inno Setup篇 1.搜索Inno Setup 2.下载Inno Setup 3.选择下载最新 innosetup-5.5.9-unicode.exe 版本(innosetup-5.5.9. ...
-
Inno Setup Compiler 中文使用教程
一.概要 该文章主要解决,Inno Setup Compiler工具的使用问题. 如有什么建议欢迎提出,本人及时修改.[如有任何疑惑可以加Q群:580749909] 二.步骤 (1)下载地址:http ...
-
Inno打包教程_百度经验
Inno打包教程 Inno工具,是比较常用的打包软件.简简单单,一招叫你学会使用inno打包. 工具/原料 inno setup 软件 方法/步骤 双击桌面的:Inno setup compiler图 ...
-
使用Inno Setup Compiler制作安装软件包
前言 项目开发完成之后,需要程序打包发行,本文使用Inno Setup工具制作安装软件包. 系统环境 系统:win7_x64 工具:Inno Setup Complier 实现步骤 1.下载安装Inn ...
随机推荐
-
使用PowerDesigner生成Access数据库
PowerDesigner生成Access数据库 自从使用PD以来一直知道可以支持access但一直没有搞明白如何通过脚本来创建access数据表.在PD的tools里终于找到的答案,具体 文件都在C ...
-
CURL 宏定义列表
摘自http://blog.csdn.net/msda/article/details/38047809/ CURL 宏定义列表 列表CURL库一共有17个函数 curl_close:关闭CURL会话 ...
-
【转载】matlab如何判断一个点是否在多面体内
转载自:http://www.52souji.net/point-within-a-polyhedron/ 我遇到的一个实际问题是:要在空位区域随机放置一定数量的原子,这些原子在空位区域任何一处存在的 ...
-
E - Triangle
Description Johnny has a younger sister Anne, who is very clever and smart. As she came home from th ...
-
code force 403B.B. The Meeting Place Cannot Be Changed
B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 megab ...
-
从面试连跪到收割offer,回顾我的春招面试历程(研发岗位)
本文首发于自微信公众号[程序员江湖] 作者How 2 Play Life,985 软件硕士,阿里 Java 研发工程师,在技术校园招聘.自学编程.计算机考研等方面有丰富经验和独到见解,目前致力于分享程 ...
-
SpringMVC+MyBatis+Druid使用MySQL8.0.11版本
1.使用MySQL8.0.11版本,要使用5.1.45或其他高版本驱动jar包,我本地使用的是最新的8.0.11 2.更换了MySQL驱动后,报Cannot find class [com.aliba ...
-
c# 正则表达式 首字母转大写
class Program { static void Main(string[] args) { // Input strings. const string s1 = "samuel a ...
-
redis的sort排序
Redis排序命令是sort,完整的命令格式如下:SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] ...
-
Android Studio使用GIt提交代码到本地仓库后没有Push,如何回退保存
当在AS中使用Git来提交代码时,有时候我们不注意的情况下会把不想提交的文件或文件夹(比如\build下的)提交到本地仓库,如果此时并没有Push到远程仓库的话.如果让本地仓库的提交回退并且保存之前的 ...