Inno Setup 是一款免费的window是安装制作软件,在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。安装程序用编译脚本(.iss)的方式创建,脚本为类似.ini文件格式的ASCII码文本文件,根据产品需求可通过脚本控制程序安装位置、创建快捷方式等功能属性。这里稍整理下一些常用属性功能:
1.Inno setup脚本demo
2.安装协议默认同意
3.组件选择框 
4.跳过特定的安装界面
5.信息包含换行符号
6.删除文件和删除文件夹
7.自定义BeveledLabel文字
8.安装完成后显示新特性
9.安装界面显示gif动画
10.Inno Setup在线辅助文档

1.Inno setup脚本demo
[Setup]
;程序名
AppName=cnblogs

;版本号
AppVerName=cnblogs 1.0.0.0

;发布者名
AppPublisher=sz-leez

;相关连接
AppPublisherURL=http://www.cnblogs.com/sz-leez/
AppSupportURL=http://www.cnblogs.com/sz-leez/
AppUpdatesURL=http://www.cnblogs.com/sz-leez/

;默认安装目录
DefaultDirName={pf}\{#AppName}

;默认开始菜单名
DefaultGroupName={#AppName}

;安装协议
LicenseFile=C:\Inno_Setup_demo\license.txt

;安装前查看的文本文件
;InfoBeforeFile=C:\Inno_Setup_demo\Readme.txt

;安装后查看文本文件
;InfoAfterFile=C:\Inno_Setup_demo\what's new.txt

;输出文件夹
OutputDir=.\Output\

;输出文件名
OutputBaseFilename=cnblogs_setup

;安装图标
SetupIconFile=C:\Inno_Setup_demo\cnblogs.ico

;安装需要输入密码
;Password=123456
;Encryption=yes

;压缩相关
Compression=lzma
SolidCompression=yes

;可以让用户忽略选择语言相关
ShowLanguageDialog=yes

;备注版本信息
VersionInfoCompany=XXX Software Co., Ltd.
AppCopyright=Copyright 2006-2015 XXX Software Co., LTD.
AppPublisher=XXX Software
 
;制作选择语言
[Languages]
Name: "en"; MessagesFile: compiler:Default.isl

;用户定制任务,任务列表界面 复选框
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}          
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
;打包应用程序exe
Source: .\app\{#SourUI}; DestDir: {app}; Flags: ignoreversion; DestName: {#DestUI}

;开始/程序 里的 ie、反安装 快捷键图标
Source: .\images\Uninstall.ico; DestDir: {app}\Images\uninstallicon; Flags: ignoreversion

[Icons]
;程序exe图标
Name: {group}\{#AppName}; Filename: {app}\{#DestUI}; WorkingDir:{app}

;开始菜单卸载图标链接
Name: {group}\{#AppName} Uninstall; Filename: {uninstallexe}; WorkingDir:{app}; IconFilename: {app}\Images\uninstallicon\Uninstall.ico

;桌面图标、快速启动栏图标
Name: {commondesktop}\{#AppFullName}; Filename: {app}\{#DestUI}; WorkingDir:{app}; Tasks: desktopicon
Name: {userappdata}\microsoft\internet explorer\quick launch\{#AppFullName}; Filename: {app}\{#DestUI}; WorkingDir:{app}; Tasks: quicklaunchicon

[Run]
;安装界面最后一页的复选框
Filename: {app}\{#DestUI}; Description: {cm:LaunchProgram,{#AppFullName}}; Flags: postinstall nowait skipifsilent runascurrentuser

[code]
//全局变量
var MyProgChecked: Boolean;
 
//判断程序是否存在
//初始华程序事件
function InitializeSetup(): boolean;
var Isbl: boolean;         //声明变量
var Isstr: string;
begin                      //开始
Isbl := true;              //变量赋值
Isstr := '欢迎';
if RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\cnblogs', 'config') then
begin
    MsgBox('已安装过,请先卸载在安装',mbConfirmation, MB_OK);
    isbl := false;
end else
begin
   //MsgBox('无值',mbConfirmation, MB_OK);
     isbl := true;
end;
 
Result := Isbl;
end;       //结束
 
procedure CurStepChanged(CurStep: TSetupStep);
var Isstr :string;
begin
if CurStep=ssInstall then       //实际安装前调用
begin
//安装完成后调用
//do something
end;

if CurStep=ssPostInstall then
begin
//do something
end;
end;

2.安装协议默认同意
[code]
procedure InitializeWizard();
begin
WizardForm.LICENSEACCEPTEDRADIO.Checked := true;
end;

3.组件选择框
[Types]
Name: full; Description: 推荐
Name: default; Description: 典型
Name: custom; Description: 自定义; Flags: iscustom
;告诉安装程序这个类型是自定义类型。必须定义iscustom这个参数,才能显示出组件选择框

4.跳过特定的安装界面
[code]
function ShouldSkipPage(PageID: Integer): Boolean; 
begin 
if PageID=XXX then 
result := true; 
end;

;XXX对应需要跳过的页面ID:
wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished

5.信息包含换行符号
在 [Messages]   换行符号为%n
在 MsgBox 中换行符号为 #13#10    //#13 为回车字符

6.删除文件和删除文件夹
;只删单个文件用 DeleteFile
DeleteFile(ExpandConstant('{app}\cnblogs.exe'));
;删除所有文件及文件夹
DelTree(ExpandConstant('{app}'), True, True, False);

7.自定义BeveledLabel文字
[Messages]
BeveledLabel=sz-leez

8.安装完成后显示新特性
[Run]
Filename: "{app}\description.txt"; Description: "What's New"; Flags: postinstall shellexec skipifsilent

9.安装界面显示gif动画
http://restools.hanzify.org/article.asp?id=79&page=2

10.Inno Setup在线辅助文档
http://www.jrsoftware.org/ishelp/index.php

Inno Setup的更多相关文章

  1. C/S打包 客户端/windows程序 Inno Setup

    之前介绍过InstallShield打包工具,本文再介绍更加方便的打包工具Inno Setup Inno Setup相对来说,比InstallShield更容易使用,不需要去等VS去创建项目,只要提供 ...

  2. [Tool]Inno Setup创建软件安装程序。

    这篇博客将介绍如何使用Inno Setup创建一个软件安装程序. Inno Setup官网:http://www.jrsoftware.org/isinfo.php. 可以下载到最新的Inno Set ...

  3. inno setup读取注册表遇到的一个坑

    一.背景 目前,公司针对PR开发的一个插件需要发布到64位系统上.该插件包括一个prm格式的文件和若干个DLL文件.其中,prm文件需要复制到PR公共插件目录下,DLL需要复制到Windows系统目录 ...

  4. 一个简单的inno setup模板

    一.模板代码 基本功能包括多路径安装.多语言.自定义图标. [Setup] ShowLanguageDialog=yes AppCopyright=Copyright Reserved(C) , 36 ...

  5. Inno Setup 版本 5.5.3+ 简体中文语言包

    ; *** Inno Setup 版本 + 简体中文消息 *** [LangOptions] LanguageName=<7B80><4F53><> Languag ...

  6. 解决Inno Setup制作中文安装包在非中文系统上显示乱码的问题

    尼玛,好几个月没更新了.囧... 目前我司新的客户端开发已经接近尾声,该改的bug已经改完,该重构的地方也都差不多了.视觉效果也已经根据美工的样式改完了.所以,就差制作安装包了.正所谓万事俱备,只欠东 ...

  7. Inno Setup怎样创建一个自动申请管理员身份运行的快捷

    如果你使用的是 Unicode 版本的 Inno Setup,那么以下是更为专业的解决方法.    这是 mlaan 提及的再一种方法. QUOTE(     CodeAutomation3.iss) ...

  8. Inno Setup制作安装包的几个问题

    1. 卸载时,如何判断应用程序是否运行    InnoSetup 提供变量AppMutex,用来保存应用程序的Mutex名称.现在很多应用程序都是唯一实例运行.这样避免配置文件被错误修改以及其他很多衍 ...

  9. Inno setup中定制安装路径

    我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法. 用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下: 1,写一个函数,来返回新的安装路径,如: function ...

  10. Inno setup定制安装界面

    Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我 ...

随机推荐

  1. C# 来做 视频播放 视频流处理 转码 实时传输

    最近一直在研究视频实时查看播放 很遗憾 只成功了一半 记录一下历程 以便大家相互交流 项目需求是  GPS 视频设备  连接服务器  将视频流走RTP  协议发送到服务器 服务器将接收的视频流 传输给 ...

  2. .NET C#到Java没那么难,DB篇

    前言 .NET C#到Java没那么难,都是面向对象的语言,而且语法还是相似的,先对比一下开发环境,再到Servlet,再到MVC,都是一样一样的,只是JAVA的配制项比较多而已,只要配好一个,后面都 ...

  3. POJ 3279 枚举(思维)

    Fliptile Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10931   Accepted: 4029 Descrip ...

  4. 禁用Ubuntu 15.04登录界面显示客人会话

    在控制台打开如下配置文件,如果没有就自己创建一个: sudo vi /etc/lightdm/lightdm.conf 向文件中添加如下内容: [SeatDefaults] greeter-sessi ...

  5. shell统计文本中单词的出现次数

    Ubuntu14.04 给定一个文本,统计其中单词出现的次数 方法1 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.t ...

  6. Missing number - 寻找缺失的那个数字

    需求:给出一个int型数组,包含不重复的数字0, 1, 2, ..., n:找出缺失的数字: 如果输入是[0, 1, 2] 返回 3 输入数组 nums = [0, 1, 2, 4] :应该返回 3 ...

  7. SQL Server2008 安装及概述

    最近在学习SQL Server 数据库,用的版本是2008 R2的版本,如下图所示,本人学习时间不长,写这篇文章一是为了锻炼自己加深印象,二也可以与和诸多朋友进行交流以及得到大家的指教. 安装教程网上 ...

  8. jenkins IOS- ad-hoc 打包

    背景 客户无大企业证书,只有开发者证书,如果进行开发分发测试只能采用两种方式 testfight ad-hoc打包 上testfight存在一定的审核时间,排除掉,最后选择打ad-hoc的包 解决 查 ...

  9. easyui复选框树动态加载后台数据,实现自动选中数据库中数据。后台语言是.NET

    最近公司做项目用到了easyui复选框树来实现加载不同类型产品.因为我刚刚毕业,现在也算是实习吧,所以一脸懵逼啊.在公司里的一个哥的帮助下 ,我写出来这个EasyUi复选框树了,虽然东西不难,但也是自 ...

  10. NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型

    LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...