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. 以芯片直读方式得到的全盘镜像解析及ext4日志区域解析

    之前在centos中分析了/dev/sda1下的结构,但当对象是一块以芯片直读方式作出来的全盘镜像呢? 这次以安卓手机的全盘镜像为对象,尝试按照ext4文件系统结构手动解析,加强对ext4文件系统.E ...

  2. OpenStack(企业私有云)万里长征第五步——虚拟机Migrate&Resize

    一.前言 上一篇文章讲了OpenStack的部署和简单操作,今天介绍一下如何实现虚拟机的Migrate以及Resize.Migrate操作和Resize操作基本上属于同一种操作,Migrate操作只是 ...

  3. 使用C#在VS中开发:未处理AccessViolationException “System.AccessViolationException”类型的未经处理的异常

    未处理AccessViolationException: “System.AccessViolationException”类型的未经处理的异常在System.Data.dll中发生 其他信息:尝试读 ...

  4. 性能百万/s:腾讯轻量级全局流控方案详解

    WeTest 导读 全新的全局流控实现方案,既解决了目前流控的实现难点,同时保证运行稳定且流控准确的前提下,实现更简单,部署成本更低,容灾能力更强. 该方案组件化之后,可以推广到别的有需要的部门使用, ...

  5. 简单好用用js就可以保存文本文件到本地

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. Linux系统下基本命令

    <Linux系统下基本命令> Linux系统下基本命令: 要区分大小写 uname 显示版本信息(同win2K的 ver) dir 显示当前目录文件,ls -al 显示包括隐藏文件(同wi ...

  7. Oozie时出现Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure?

    不多说,直接上干货! 问题详情 [hadoop@bigdatamaster oozie--cdh5.5.4]$ bin/ooziedb.sh create -sqlfile oozie.sql -ru ...

  8. 【html】 a 标签

    摘要 嗷呜,发现好多前端细节,基础不扎实啊,喵了个咪 target 属性 在制定框架中打开 <a href="a.html" target="view_frame& ...

  9. 3.如何安装Apache Spark

    如何安装Apache Spark 1 Why Apache Spark 2 关于Apache Spark 3 如何安装Apache Spark 4 Apache Spark的工作原理 5 spark弹 ...

  10. 浅谈jQuery Pagination Ajax 分页插件的使用

    插件介绍 此插件是jQuery的ajax分页插件.分页切换时无刷新也无延迟,因为是一次性加载的.如果你用到此插件作分页的时候,涉及到的数据量大,建议不要使用此插件,因为加载慢会导致用户体验不好! 插件 ...