Innosetup打包脚本常用设置大全


Innosetup是一款常用的打包软件,可以用来制作windows平台下的安装包。这里介绍一下通过Innosetup制作安装包的时候,那些常用设置。

Innosetup脚本框架

Innosetup打包脚本的整体结构一般如下所示:

;Innosetup的脚本
[Setup]
;指定安装包的各种基本属性
;版本号\应用的ID\资源目录\输出目录
;图标\压缩方式

[Languages]
;指定语言翻译对应的文件

[dirs]
;指定需要创建的目录

[Files]
;指定安装包里面需要拷贝的文件

[Registry]
;安装包需要修改的注册表

[Run]
;安装过程中需要执行的操作

[UninstallRun]
;卸载过程中需要执行的操作

[Code]
;在安装过程中需要执行的代码块

指定安装包的各种属性

[Setup]
;指定应用的ID
AppId={{11111111-CE8D-4AC3-9C9D-2F0C038F99E9}
;指定应用的名称
AppName="TestDemo"
;指定应用锁
AppMutex=TestMutex
;指定应用的版本号
AppVersion="1.0.1"
;指定应用的发布者
AppPublisher="feifei"
;指定应用的网络地址
AppPublisherURL=""
;网络支持地址和更新地址
AppSupportURL=""
AppUpdatesURL=""
;默认安装目录
DefaultDirName="C:\\"
DirExistsWarning=no
DefaultGroupName=""
;输出安装包的名称
OutputBaseFilename="OutputPacket"
;压缩方式
Compression=lzma
SolidCompression=yes
WizardStyle=modern
;资源文件的目录
SourceDir = resource
;输出目录
OutputDir = ..\output
;是否需要管理员权限
PrivilegesRequired=admin
;图标
SetupIconFile=logo.ico
;是否允许无图标
AllowNoIcons=yes

设置应用的开机启动

所谓开机启动就是把应用或者脚本添加到对应的开机启动注册表中,所以我们需要通过操作注册表来实现对应的应用的开机启动。对应的操作如下所示:

[Registry]
;开启启动
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "AppAutoStart"; ValueData: "{app}\Demo.bat"
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "AppAutoStart"; ValueData: "{app}\Demo.exe"

修改注册表

windows下注册表分为两类,一类是win32的注册表一类是win64的注册表,通过Innosetup修改注册表的操作如下所示:

[Registry]
;创建设置win32注册表
Root: HKLM;   Subkey: Software\Demo;             Flags: uninsdeletekeyifempty createvalueifdoesntexist
Root: HKLM;   Subkey: Software\Demo\Test; ValueName: InstallDir; ValueType: string; ValueData: {app}; Flags: uninsdeletekey createvalueifdoesntexist

;创建设置win64注册表
Root: HKLM64; Subkey: Software\Demo;            Flags: uninsdeletekeyifempty createvalueifdoesntexist; Check: IsWin64
Root: HKLM64; Subkey: Software\Demo\Test; ValueName: InstallDir; ValueType: string; ValueData: {app}; Flags: uninsdeletekey createvalueifdoesntexist; Check: IsWin64

安装包的初始化操作

我们可以在安装包里面指定一部分代码,这部分代码会在安装包启动的时候执行,对应的设置如下所示:

[Code]
//安装程序初始化函数
function InitializeSetup(): Boolean;
var
  ErrorCode: Integer;
  installPath: string;
  ResultCode: Integer;
  version:string;
  targetdir: string;
begin
  // 启动安装包的时候会杀掉某个进程
  ShellExec('open', ExpandConstant('{cmd}'), '/c taskkill /f /t /im Demo.exe', '', SW_HIDE, ewNoWait, ErrorCode);
 
  //已经安装的情况下执行某个脚本
  Result:= true;
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Demo\Test', 'InstallDir', installPath)then
  begin
    Exec (installPath + '\Test\stop.bat', '', '',SW_HIDE, ewWaitUntilTerminated, ResultCode);
    if ResultCode <> 0  then
    begin
       Result:= true;
    end
  end
end;

生成桌面快捷方式

我们可以通过安装包打包脚本指定应用安装之后的桌面快捷方式,对应的设置如下:

[Icons]
;指定应用的快捷方式
Name: "{userdesktop}\{#MyAppName}";Filename: "{app}\Test\Test.exe"; WorkingDir: "{app}\Test"
;指定脚本的快捷方式
Name: "{userdesktop}\重启应用";Filename: "{app}\Start.bat"; WorkingDir: "{app}"

调用动态库函数

Innosetup支持通过动态库扩展自己的功能。这里就介绍一下如何编写动态库,并且在Innosetup中调用。
首先编写一个动态库工程。编写动态库的时候需要注意:
1.该动态库必须以C语言的形式导出对应的接口,导出形式如下所示:

int WINAPI TestExportAPI0(char* testArgument, char* common_data) {}
int WINAPI TestExportAPI1() {}
int WINAPI TestExportAPI2() {}
int WINAPI TestExportAPI3() {}

获得了对应的动态库之后我们就可以在Innosetup脚本中调用对应的动态库函数了,调用示例如下所示:

[Code]
//引入外部函数
function TestExportAPI0(const testArgument: PAnsiChar; const commonData: PAnsiChar): Integer;
external 'TestExportAPI0@files:Demo.dll stdcall setuponly delayload loadwithalteredsearchpath';

function TestExportAPI1(): Integer;
external 'TestExportAPI1@files:Demo.dll stdcall setuponly delayload loadwithalteredsearchpath';

function TestExportAPI2(): Integer;
external 'TestExportAPI2@files:Demo.dll stdcall setuponly delayload loadwithalteredsearchpath';

function TestExportAPI3(): Integer;
external 'TestExportAPI3@files:Demo.dll stdcall setuponly delayload loadwithalteredsearchpath';

//在内部调用
function NextButtonClick(CurPageID: Integer): Boolean;
var
  RetCode: Integer;
begin
  Result := True;
  if (CurPageID = wpReady) then
  begin
    IsUsing := TestExportAPI0(ExpandConstant('{app}'), ExpandConstant('{commonappdata}'));
    if IsUsing = 1 then
    begin
      RetCode := TestExportAPI1();
    end;
  end;
end;
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Inno Setup 是一款免费的安装程序制作工具,它可以帮助开发者将自己制作的软件打包成可安装的程序。而MySQL 5.6是一种常用的关系数据库管理系统,它提供了可靠性和扩展性,广泛应用于Web开发和数据库管理。 如果想在Inno Setup 中集成MySQL 5.6,可以按照以下步骤进行: 1. 首先,下载并安装MySQL 5.6的安装包。在MySQL官方网站上可以找到最新的安装包,选择符合操作系统的版本并按照提示完成安装。 2. 接下来,在Inno Setup脚本文件中添加MySQL 5.6的安装命令。在 [Run] 段落中,使用 [Filename] 参数指定MySQL 5.6安装程序的路径,并使用 [Parameters] 参数指定自定义的安装参数,如安装路径等。 3. 在安装程序的 [Files] 段落中,将MySQL 5.6的安装包文件添加到需要安装的文件列表中。 4. 此外,需要在脚本文件中添加对MySQL 5.6的配置文件进行自定义的命令。可以使用 [IniEdit] 函数来修改MySQL 5.6配置文件中的设置,例如设置数据库用户名和密码等。 5. 最后,使用Inno Setup编译器编译脚本文件,生成可执行安装程序。双击运行安装程序,按照提示完成MySQL 5.6的安装。 通过以上步骤,就可以在使用Inno Setup制作的安装程序中集成MySQL 5.6,并根据需要进行自定义设置。这样一来,用户在安装软件时,就可以同时安装并配置MySQL 5.6,使软件能够正常运行和访问数据库。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值