zoukankan      html  css  js  c++  java
  • Inno Setup 脚本

    给你个我用的例子:

    Delphi/Pascal code
     
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    ; 脚本用 Inno Setup 脚本向导生成。
    ; 查阅文档获取创建 INNO SETUP 脚本文件详细资料!
     
    [Setup]
    AppName=Common downloader
    AppVerName=Common downloader
    DefaultDirName={pf}XXXCommon downloader
    DefaultGroupName=XXXCommon downloader
    DisableProgramGroupPage=yes
    OutputDir= .Setup
    OutputBaseFilename=Common downloader setup V1.0.0
    Compression=lzma
    SolidCompression=yes
    VersionInfoCompany=XXX
    VersionInfoVersion=1.0.0
     
    [Languages]
    Name: "Chinese"; MessagesFile: "compiler:LanguagesChinese.isl"
    Name: "English"; MessagesFile: "compiler:LanguagesEnglish.isl"
     
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: dontinheritcheck
     
    [Files]
    Source: "CMDL.exe"; DestName: "Common downloader.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "DL.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "DM.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "config.ini"; DestDir: "{app}"; Flags: ignoreversion
    Source: "App*"; DestDir: "{app}\App"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "Boot*"; DestDir: "{app}\Boot"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "Resource_cn*"; DestDir: "{app}Resource"; Languages: Chinese; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "Resource_en*"; DestDir: "{app}Resource"; Languages: English; Flags: ignoreversion recursesubdirs createallsubdirs
    ; 注意: 不要在任何共享系统文件中使用“Flags: ignoreversion”
     
    [Icons]
    Name: "{group}Common downloader"; Filename: "{app}Common downloader.exe"
    Name: "{group}{cm:UninstallProgram,Common downloader}"; Filename: "{uninstallexe}"
    Name: "{userdesktop}Common downloader"; Filename: "{app}Common downloader.exe"; Tasks: desktopicon
     
    [Run]
    Filename: "{app}Common downloader.exe"; Description: "{cm:LaunchProgram,Common downloader}"; Flags: nowait postinstall skipifsilent
     
    [Registry]
    Root: HKLM; Subkey: "SoftwareXXX"; Flags: createvalueifdoesntexist
    Root: HKLM; Subkey: "SoftwareXXXCommon downloader"; Flags: uninsdeletekeyifempty
    Root: HKLM; Subkey: "SoftwareXXXCommon downloader"; ValueType: string; ValueName: "Path"; ValueData: "{app}"
    Root: HKLM; Subkey: "SoftwareXXXCommon downloader"; ValueType: string; ValueName: "Version"; ValueData: "V1.0.0"
    Root: HKLM; Subkey: "SoftwareXXXCommon downloader"; ValueType: dword; ValueName: "VersionNum"; ValueData: "100"
    Root: HKLM; Subkey: "SoftwareXXXCommon downloader"; ValueType: string; ValueName: "Release Date"; ValueData: "2008/09/29"
     
    [Code]
    function InitializeSetup(): Boolean;
    var
       Version: string;
       strPath: string;
       ResultCode: Integer;
    begin
       Result:= TRUE;
      //read the version
      if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SoftwareXXXCommon downloader',
         'Version', Version) then
      begin
        // Successfully read the value
        Version := Format('Exist the version %s,whether uninstall it?',[Version]);
        if MsgBox(Version,mbConfirmation,MB_YESNO) = IDYES then
        begin
         //read the path
         if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SoftwareXXXCommon downloader',
         'Path', strPath) then
            begin
             // Successfully read the value
             strPath:= strPath + 'unins000.exe';
             Exec(ExpandConstant(strPath), '''', SW_SHOW,
                  ewWaitUntilTerminated, ResultCode);
            end;
        end else
        Result:= FALSE;
      end;
    end;


    这个例子可以在安装之前卸载以前的版本,并提示你卸载之前的版本信息。

  • 相关阅读:
    MongoDB使用固定集合
    mongoDB创建用户
    easyuI企业管理系统-实战五 删除功能
    easyuI企业管理系统-实战四 上传图片
    easyuI企业管理系统-实战三 添加功能
    easyuI企业管理系统-实战二 表格引入json数据
    日常记录
    easyui的图标汇总
    easyuI企业管理系统-实战一下拉列表框应用
    想学easyui框架技术的同学们,请注意! 编辑
  • 原文地址:https://www.cnblogs.com/lidabo/p/9809759.html
Copyright © 2011-2022 走看看