Inno Setup 打包注册ocx控件的exe

Inno Setup打包控件简介
Inno Setup在打包控件时,主要在.iss脚本中完成。首先,我们打开一个.iss文件,进行代码编写。

;定义一些基础变量

#define  MyAppName "XXXXXXX"
#define  MyAppVersion "X.X.X"
#define  AppPublisher "XXXXXXXXX"
#define  MyAppURL "http://XXXXXXXXX"

[Setup]       
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
;工具自带生成Appid工具,不同版本可能操作不同
AppId={{3964D392-76E4-44A5-A972-1AB33FB01715}

AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName}_V{#MyAppVersion}
AppPublisher={#AppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}

;自己平时用大多不需要添加
;安装协议
;LicenseFile = C:\xxxx\xxx.txt
;安装前查看的文件
;InfoBeforeFile=C:\xxxx\xxx.txt
;安装后查看文件
;InfoAfterFile=C:\xxxx\xxx.txt
;安装密码
;Password=123
;Encryption=yes


;这个指示的值是用在向导的选择开始菜单文件夹页中使用的默认开始菜单文件夹名。如果这个指示是空白或未指定,它将用“默认”作为名字
DefaultDirName=C:\xxxx\
;默认值是no。如果是yes就不会出现安装目录选择的页面。这个设置成auto也不错。
DisableDirPage=yes

;默认的开始菜单中的名字。这个要设置
DefaultGroupName={#MyAppName}
;默认值是no。这个是显示开始菜单页面。yes将被忽略
DisableProgramGroupPage=yes

;默认是在iss文件目录下生成output文件夹,可以自己设置生成位置。
OutputDir=.\

;生成的exe的文件名字
OutputBaseFilename={#MyAppName}安装包_V{#MyAppVersion}

;设置exe文件的图标,win10系统如果显示图标未变,可以尝试重启电脑
SetupIconFile=.\xx.ico

;这个定义了生成时应该怎样压缩文件,种类自查,默认为lzma2/max
Compression=lzma
;如果设为 yes,固实压缩将启用。这会使所有文件一次性压缩
SolidCompression=yes

;备注一些版本信息
VersionInfoCompany={#AppPublisher}
VersionInfoDescription={#MyAppName}
VersionInfoVersion={#MyAppVersion}
VersionInfoCopyright=xxxxxxxxx Copyright(C) 2017

;选择语言,Inno Setup安装目录下有一个Languages的文件夹,该文件夹提供了可供使用的语言,通过在脚本中加入[languages]段,可以实现该项功能
;[setup]段中需要加入ShowLanguageDialog=yes,其实不加也是可以的,因为ShowLanguageDialog默认是yes。
;compiler:他提供了编译器所在目录的路径。
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

;安装文件,第一个;前表示路径
[Files]
;加载所有文件
Source: 发布文件\*.*; DestDir: {app}; Flags: restartreplace; 
;注册ocx
Source: 发布文件\xxx.ocx; DestDir: {app}; Flags: restartreplace regserver;
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

;这个可选段格式与 [Uninstalldelete] 一样,除了它的条目处理在安装步骤之前
[InstallDelete]
;这里尽量不要使用通配符来删除所有文件
Name: {app}\*.*; Type: files

[UninstallRun]
Filename: "regsvr32"; Parameters:"/u /s {app}\xx.ocx"

;这个可选段定义你想让卸载程序删除除用 [Files] 或 [Dirs] 条目安装/创建外的其它文件或目录,或由你应用程序创建的一些公共使用的 .INI 文件。卸载程序在卸载时最后一步处理这些条目
[UninstallDelete]
[Uninstalldelete]
;Type: files; Name: "{win}\MYPROG.INI"
;下列是所支持的参数列表:
;Type (必需) 指定卸载程序要删除的是什么。必须是下面中的一个:
; files 该名字参数指定一个详细的文件名,或带通配符的文件名。
; filesandordirs 除同时还匹配目录名外,功能与 files 相同,并删除任何名字匹配的目录以及包含它们中的所有文件和子目录。
;dirifempty 当使用这个参数时,名字参数必须是目录名,但它不能包含通配符。该目录只在不包含任何文件或子目录的情况下才被删除。
;注 意: 不要尝试在这里使用通配符用来删除 {app} 目录中的所有文件。
Type: filesandordirs; Name: "{app}"

;注册表进行注册{控件的idclass}
[Registry]
Root: "HKCU"; Subkey: "Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{{10946843-7507-44FE-ACE8-2B3483D179B7}\iexplore\AllowedDomains\*";
;Root: "HKCU"; Subkey: "Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{{43E4D4FC-3CD8-459A-AAA1-698C1288DE93}\iexplore\AllowedDomains\*";

然后,我们点击生成,就会在iss同目录下发现exe文件,这就是我们得到打包后的exe文件。点击运行,即可安装注册控件。
如果我们想要卸载,我们可以去找自己设定的安装目录,打开文件发现里面有一个卸载的exe,点击运行即可将所有的文件清除。这是比较简洁的安装版本,如果有别的特殊的要求,可以根据查找更详细的内容进行添加删除。

猜你喜欢

转载自blog.csdn.net/c1149884598/article/details/84951029
今日推荐