zoukankan      html  css  js  c++  java
  • Inno Setup


    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_demolicense.txt

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

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

    ;输出文件夹
    OutputDir=.Output

    ;输出文件名
    OutputBaseFilename=cnblogs_setup

    ;安装图标
    SetupIconFile=C:Inno_Setup_democnblogs.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: .imagesUninstall.ico; DestDir: {app}Imagesuninstallicon; Flags: ignoreversion

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

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

    ;桌面图标、快速启动栏图标
    Name: {commondesktop}{#AppFullName}; Filename: {app}{#DestUI}; WorkingDir:{app}; Tasks: desktopicon
    Name: {userappdata}microsoftinternet explorerquick 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, 'SOFTWAREcnblogs', '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

  • 相关阅读:
    从零开始学VUE之组件化开发(组件数据的存放)
    从零开始学VUE之组件化开发(组件分离写法)
    从零开始学VUE之组件化开发(语法糖优化组件注册)
    进程与线程的一个简单解释
    Crontab爬虫定时执行
    接口分类复习
    最长公共子串
    最长公共子序列(力扣第1143题)
    Reduce端分组排序源码分析
    Job提交流程源码和切片源码详解
  • 原文地址:https://www.cnblogs.com/sz-leez/p/4534776.html
Copyright © 2011-2022 走看看