Innosetup打包脚本常用设置大全

这篇具有很好参考价值的文章主要介绍了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脚本中调用对应的动态库函数了,调用示例如下所示:文章来源地址https://www.toymoban.com/news/detail-604708.html

[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;

到了这里,关于Innosetup打包脚本常用设置大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Inno Setup 结合exe4j打包 Java 程序为 EXE 文件

    链接:https://pan.baidu.com/s/1l6qYRi6unjLL_4VVYpsShg 提取码:bzd6 文件内容: exe4j 是一个商业软件,旨在将 Java 程序打包为本地可执行文件。它提供了丰富的功能,包括创建 Windows 可执行文件、安装程序、服务等。使用 exe4j,您可以将 Java 应用程序打包成一个独立的 EXE 文件,无需安

    2024年02月09日
    浏览(61)
  • Inno Setup简介

    简易打包: 选择使用向导创建一个新的脚本 填好图中的安装包名称、安装版本、安装包发布者、安装包的相关网站,安装包名称和版本是必填的,剩下那两个可以选填。 第一个是应用程序目标基本文件夹可以选择,第二个是应用程序文件夹名称,就是安装时新建的安装目录

    2024年02月09日
    浏览(47)
  • Inno Setup实现软件开机自动运行的两种方法

    Inno Setup实现软件开机自动启动的两种方法 在许多情况下,我们希望我们的软件能够在操作系统启动时自动启动。对于 Windows 操作系统,可以通过将程序添加到启动组或在注册表的 Run 项中创建值来实现此目的。 有两种不同的方法可以做到这一点: 方法一:在启动组中创建快

    2024年02月06日
    浏览(55)
  • Inno SetUp安装包:如何在程序安装时卸载驱动程序

    如果您想通过命令行卸载.INF文件的驱动程序,您需要使用PnPUtil命令。以下是一个示例: pnputil /delete-driver oem0.inf /uninstall 在这个示例中, oem0.inf 应该被替换为您要卸载的驱动程序的.inf文件。使用 pnputil /enum-drivers 命令可以列出已安装驱动程序的列表。 请注意,你需要以管理

    2024年02月16日
    浏览(44)
  • 如何使用Inno Setup制作Unity构建程序的Windows安装程序

    必须包括: Data文件夹(xxx_Data) Mono文件夹(MonoBleedingEdge) 打包的应用程序文件(xxx.exe) Unity播放器dll文件(UnityPlayer.dll) 可选包括: Unity程序崩溃处理(UnityCrashHandler64.exe) 下载地址:https://jrsoftware.org/isdl.php 找到Stable Release,点击Download Sites的“US”下载 运行安装程序

    2024年03月17日
    浏览(56)
  • 有关 Inno Setup 的实践:检查并安装依赖,运行时退出安装或卸载

    如题,检测 Microsoft Visual C++ 2015 Redistributable (x64) 依赖并安装,若程序安装或卸载时应用运行中将检测并退出 所需依赖 Microsoft Visual C++ 2015 Redistributable (x64) Microsoft 官网下载 psvince.dll Github 下载 编辑 iss 文件

    2024年01月24日
    浏览(36)
  • Python 打包配置文件 setup.py 详解

    在Python开发中,我们经常需要将自己的代码打包成可供其他人使用的库或应用程序。为了方便用户安装和使用,我们需要创建一个配置文件  setup.py ,用于定义打包的相关信息和依赖项。本文将详细介绍如何编写  setup.py  文件,并展示每一步需要做什么。 1.1 为什么需要对项

    2024年02月03日
    浏览(41)
  • InnoSetup 安装程序设置环境变量

    InnoSetup 通过写入注册表值实现安装程序设置系统全局环境变量 环境变量以字符串值存储在注册表中,因此可以使用 [Registry] 区段操作它们。系统范围的环境变量位于: \\\"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment\\\" 特定于用户的环境变量位于: \\\"HKEY_CURRENT_USERE

    2023年04月23日
    浏览(35)
  • webpack打包常用配置项

    参考链接 文件结构:最基础版 先安装 npm i webpack webpack-cli --dev 运行命令:npx webpack 进行打包 2.1. 打包css文件,如果新增style.css文件打包会报错,提示我们需要加载合适的loaders来加载css的文件类型: 加载css文件需要加载两个loader: style-loader css-loader 安装好后需要在webpack.conf

    2024年02月09日
    浏览(46)
  • RaiseCOM(瑞斯康达)交换机常用配置命令大全

        RaiseCOM(瑞斯康达)网络设备的命令格式与思科和锐捷的很接近,熟悉这两个厂商的人稍微学习一下应该就可以上手了。 设备默认用户名:login:raisecom  设备默认用户名:password:raisecom

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包