Inno Setup简介

这篇具有很好参考价值的文章主要介绍了Inno Setup简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简易打包:

inno setup,服务器,java,前端,Powered by 金山文档

选择使用向导创建一个新的脚本

inno setup,服务器,java,前端,Powered by 金山文档

填好图中的安装包名称、安装版本、安装包发布者、安装包的相关网站,安装包名称和版本是必填的,剩下那两个可以选填。

inno setup,服务器,java,前端,Powered by 金山文档

第一个是应用程序目标基本文件夹可以选择,第二个是应用程序文件夹名称,就是安装时新建的安装目录。下边有两个可供选择,第一个是用户是否可以更改应用程序文件夹、第二个是应用程序是否需要文件夹。点击下一步

inno setup,服务器,java,前端,Powered by 金山文档

选择相应应用程序的主执行文件点击浏览去选择要封装的主文件夹,如果需要添加其他文件可以在下边选择添加文件或添加文件夹,可以看到中间有两个可供勾选的条件,第一个是是否允许用户在安装后启动应用程序、第二个是应用有无主执行文件,一般是有的。

inno setup,服务器,java,前端,Powered by 金山文档

是否将文件关联到主执行文件,应用程序的类型名称、拓展名。

inno setup,服务器,java,前端,Powered by 金山文档

在开始菜单栏创建快捷方式、是否允许用户创建桌面快捷方式

inno setup,服务器,java,前端,Powered by 金山文档

许可文件、安装之前显示信息文件、安装之后显示信息文件,可以在这向导中进行配置,后续也可以在脚本中添加代码实现,选填

inno setup,服务器,java,前端,Powered by 金山文档

选择下载方式,为哪些用户下载,或者询问用户下载模式。

inno setup,服务器,java,前端,Powered by 金山文档

选择语言包

inno setup,服务器,java,前端,Powered by 金山文档

配置安装报的输出文件夹,安装包名称、和标志,设置密码

inno setup,服务器,java,前端,Powered by 金山文档

选择是否使用#define编译指令,点击下一步就完成了脚本向导

inno setup,服务器,java,前端,Powered by 金山文档

点击finish以后可以选择就此运行脚本,或者不运行,对脚本进行更改添加。

inno setup,服务器,java,前端,Powered by 金山文档

Inno Setup简介:

一、宏定义#define

自定义的一些全局变量,例如:#define MyAppName "test"在下文中使用时AppName={#MyAppName},要加{#}。

二、主要使用到的节

1.[Setup]节,用来设置安装包的名称、作者等基础信息。需要注意的是同一个程序的不同版本程序的id、name是一致的,不同程序是不同的,可以在Tools-GenerateGUID中生成随机唯一的id。

2.[Languages]节,主要是编写程序的语言包,根据前边向导选择语言生成

3.[Tasks],可选节,他定义了安装程序在安装过程中将执行的所有用户可自定义任务

4.[Files]节,定义安装程序要在用户系统上安装的文件,在这个段中有Source和DestDir两个主要属性,Source是指文件在设计者电脑上的位置,DestDir是指要安装在用户电脑上的位置。

5.[Registry],定义希望安装程序在用户系统上创建、修改或删除的注册表项/值

6.[Icons],定义安装程序在“开始”菜单栏和桌面上创建的快捷方式

7.[Run],可选节,在成功安装程序之后但在安装程序显示最终对话框之前要执行的任意数量的程序,比如安装后运行。

8.[Type],可选节,定义安装的类型,完全安装、简洁安装、自定义安装。例:

[Types]

Name: "full"; Description: "Full installation"

Name: "compact"; Description: "Compact installation"

Name: "custom"; Description: "Custom installation"; Flags: iscustom

9.[Components],可选节,受到[types]的影响,做组件选择,例如:

Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed

Name: "help"; Description: "Help Files"; Types: full

Name: "help\english"; Description: "English"; Types: full

Name: "help\dutch"; Description: "Dutch"; Types: full

  1. [Messages],更改显示在程序中的消息文本,例如:

ButtonNext=&Forward

将向导上的next修改为转发

  1. [Dirs]此可选部分定义除了用户选择的应用程序目录(自动创建)之外,安装程序要创建的任何其他目录。在主应用程序目录下创建子目录是本节的常见用途。

Name: "{app}\data"

Name: "{app}\bin"

({app}是指脚本项目所在的文件目录)

  1. [INI]此可选部分定义任何 .您希望安装程序在用户系统上设置的 INI 文件条目。

Filename: "MyProg.ini"; Section: "InstallSettings"; Flags: uninsdeletesection

13[Code]代码段,Pascal脚本

三、Pascal语言简介

基础语法:

赋值:”:=”

定义变量:var name:type;

if语句:

if 条件 then

begin

end else

begin

end;

(跟在if下的end后有else的话不用加分号)

for循环:

for i:=2 to n do

s:=s*i;

while语句:

while a>0 do

begin

a:=a-1;

end;

函数:

function name (形参名:形参类型):返回值类型;

(返回值直接是Result,不用自己定义变量作为返回值)

procedure name(形参名:形参类型);

换行:”#10#13”

  1. Setup event functions:

(事件函数,可以重载)

function InitializeSetup():Boolean;在初始化中调用,返回否则停止,否则返回是。可以使用这个函数做一些想到窗口显示之前做的事,比如判断用户是否安装了别的版本、安装环境是否满足条件。

procedure InitializeWizard();使用此事件函数可在启动时对向导页进行更改。不能为此使用 InitializeSetup 事件函数,因为在触发时,向导窗体尚不存在.

procedure DeinitializeSetup();在安装程序终止之前调用。请注意,即使用户在安装任何内容之前退出安装程序,也会调用此函数。

procedure CurStepChanged(CurStep:TSetupStep);您可以使用此事件功能执行自己的安装前和安装后任务。在实际安装开始之前使用 CurStep=ssInstall 调用,在实际安装完成后使用 CurStep=ssPostInstall 调用,在成功安装后安装程序终止之前使用 CurStep=ssDone调用。

procedure CurInstallProgressChanged(CurProgress,MaxProgress:Integer);可以使用此事件函数在安装程序提取文件、创建快捷方式、创建INI 条目和创建注册表项时监视进度。

function NextButtonClick(CurPageID:Integer):Boolean;点击next按钮时调用 。

function BackButtonClick(CurPageID:Integer):Boolean;点击back按钮调用。

procedure CancelButtonClick(CurPageID:Integer;var Cancle,Confirm:Boolean);点击取消按钮时调用。

function ShouldSkipPage(PageID:Integer):Boolean;向导调用此事件函数以确定是否应显示特定页面(由 PageID 指定)。如果返回 True,则将跳过该页面;如果返回 False,则可能会显示该页面。

procedure CurPageChanged(CurPageID:Integer);在显示新的向导页面后调用。

function CheckPassword(Password:String):Boolean;如果安装程序在 Pascal 脚本中找到密码查核事件函数,它会自动显示“密码”页并调用查核密码来检查密码。返回 True 接受密码,返回 False 拒绝密码。

function NeedRestart():Boolean;返回 True 指示安装程序在成功安装结束时提示用户重新启动系统,否则返回 False。

function UpdateReadyMemo(Space,NewLine,MemoUswrInfoInfo,MemoDirInfo,MemoTypeInfo,MemoComponentsInfo,MemoGroupInfo,MemoTasksInfo:String):String;如果安装程序在 Pascal 脚本中找到 UpdateReadyMemo 事件函数,则当“准备安装”向导页变为活动页时,将自动调用该函数。

function RegisterPreviousData(PreviousDataKey:Integer);若要存储自定义向导页上输入的用户设置,请在 Pascal 脚本中放置一个 RegisterPreviousData 事件函数,并在其中调用 SetPreviousData(PreviousDataKey, ...),每个设置一次。

function CheckSerial(Serial:String):Boolean;如果安装程序在 Pascal 脚本中找到 CheckSerial 事件功能,则序列号字段将自动出现在“用户信息”向导页上(必须在 [设置] 部分中使用 UserInfoPage=yes 启用该字段!返回 True 接受序列号,返回 False 拒绝序列号。

function GetCustomSetupExitCode:Integer;返回一个非零数字以指示安装程序返回自定义退出代码。仅当安装程序已成功运行到完成且退出代码为 0 时,才会调用此函数。

function PrepareToInstall(var NeedsRestart:Boolean):String;您可以使用此事件函数来检测和安装缺少的必备组件和/或关闭任何即将更新的应用程序.如果 CloseApplications 设置为 yes,则在安装程序检查正在使用的文件之前调用此函数。

function RegisterExtraCloseApplicationsResources;要注册额外的文件,如果 CloseApplications 设置为 yes,安装程序应检查是否正在使用,请在 Pascal 脚本中放置一个 RegisterExtraCloseApplicationsResources 事件函数,并在其中调用 RegisterExtraCloseApplicationsResource 每个文件一次。

五、Uninstall event functions:

function InitializeUninstall():Boolean;卸载程序

procedure InitializeUninstallProgressForm();使用此事件函数可在启动时更改进度窗体。不能为此使用 InitializeUninstall 事件函数,因为在触发时,进度窗体尚不存在。

procedure DeinitializeUninstall();

procedure CurUninstallStepChanged(CurUninstallStep:TUninstallStep);

function UninstallNeedRestart():Boolean;

六、如何使用DLLS和.NET依赖:

DLLS:

[Code]

function A(B: Integer): Integer;

external '<dllfunctionname>@<dllfilename>';

function A(B: Integer): Integer;

external '<dllfunctionname>@<dllfilename> <callingconvention>';

function A(B: Integer): Integer;

external '<dllfunctionname>@<dllfilename> <callingconvention> <options>';

callingconvention:调用约定,一般是stdcall

options:delayload,延迟加载DLL,在使用到该函数时加载;loadwithalteredsearchpath,指定应使用 Windows 标志LOAD_WITH_ALTERED_SEARCH_PATH加载 DLL,这实质上会导致加载程序在包含 DLL 的目录中搜索任何依赖 DLL;setuponly,指定仅当脚本从安装程序运行时,才应加载 DLL;uninstallonly,指定在卸载时加载。

.NET依赖:

首先要将.net的安装包文件放在.iss文件目录下,在[Files]段添加如下代码:

Source:"E:\Inno setup\PRO\ndp48-x86-x64-allos-enu.exe";DestDir:"{tmp}";Flags:ignoreversion,将文件添加在用户安装后的系统临时文件夹中,需要注意的是,他会在用户点击安装后才会将文件解压到临时文件中,而我们需要在向导未开始之前判断用户是否安装了,没有安装的话我们来进行安装,所以我们的代码需要将.NET的安装包进行解压放进系统临时文件夹中:

ExtractTemporaryFile('ndp48-x86-x64-allos- enu.exe');

此时我们可以调用Exec函数来运行.NET的安装文件:

Exec(ExpandConstant('{tmp}\ndp48-x86-x64-allos-enu.exe'),'','',SW_SHOWNORMAL,ewWaitUntilTerminated,rc);文章来源地址https://www.toymoban.com/news/detail-698798.html

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

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

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

相关文章

  • 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日
    浏览(35)
  • Inno Setup打包winform、wpf程序可判断VC++和.net环境

    官网链接: link 1、新建打包文件 2、填写 应用名称、版本号、公司名称、公司官网 3、选择安装路径 Custom是指定默认路径、Program Files folder是默认C盘根目录 4、选择程序启动exe文件 以及Addfolder选择全部运行文件 5、选择安装前显示文字 、安装中、安装后 这里我只选择了安装前

    2024年02月16日
    浏览(53)
  • 将Python打包为exe+inno setup将exe程序封装成向导安装程序

    为什么要打包? Python脚本不能在没有安装Python的机器上运行。如果写了一个脚本,想分享给其他人使用,可她电脑又没有装Python。如果将脚本打包成exe文件,即使她的电脑上没有安装Python解释器,这个exe程序也能在上面运行。 1、在pycharm中安装pyinstaller 2、进入你所在的文件

    2024年01月25日
    浏览(43)
  • Java 1.8 Setup

    1. mkdir /opt/jdk 2. mv jdk-8u181-linux-i586.tar.gz /opt/jdk 3. 进入 /opt/jdk/java 目录,解压jdk    cd /opt/jdk/java     tar -xvf  jdk-8u181-linux-i586.tar.gz 4. 配置环境变量 vi /etc/profile #在文件的最后面添加如下代码 JAVA_HOME=/opt/jdk/jdk1.8.0_371 JRE_HOME=/opt/jdk/jdk1.8.0_371/jre CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOM

    2024年02月08日
    浏览(30)
  • Vue3技术1之Vue3简介、创建Vue3工程、分析工程结构、安装开发者工具与初识setup

    2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王) github上的tags地址:https://github.com/vuejs/vue-next/releases/tag/v3.0.0 性能的提升、源码的升级、更好的支持TypeScript、新的特性 官方文档 确保vue/cli版本在4.5.0以上 vue --version 安装或者升级@vue/cli npm install -g @vue/cli 创建 vue crea

    2023年04月11日
    浏览(49)
  • ChatGPT Plugin开发setup - Java(Spring Boot) Python(fastapi)

    记录一下快速模板,整体很简单,如果不接auth,只需要以下: 提供一个 /.well-known/ai-plugin.json 接口,返回openAI所需要的格式 提供openAPI规范的文档 CORS设置 其他的和普通的web开发类似. 本地开发就直接使用localhost即可,前几天官方localhost无法联通,最近应该修复了. 要让GPT更好理解接口

    2024年02月04日
    浏览(47)
  • BOA服务器(一):简介

    在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用

    2024年02月05日
    浏览(41)
  • 云计算入门——云服务器:简介

    前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 什么是云服务器? 云服务器 是远程向用户提供计算资源的互联网基础设施。我们可以将云服务器视为一台私人计算机,可以像本地计算机(例如笔记

    2024年01月18日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包