zoukankan      html  css  js  c++  java
  • 使用inno setup打包程序完整脚本(.net框架检测,重复安装检测)

    ; 脚本由 Inno Setup 脚本向导 生成!
    ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!

    #define MyAppName "小小鸟软件"
    #define MyAppVersion "2012.2.29"
    #define MyAppPublisher "小小鸟科技"
    #define MyAppURL "http://www.cnblogs.com/IT-SmallBird/"
    #define MyAppExeName "IT.exe"
    #define MyWebName "访问小小鸟博客"

    [Setup]
    ; 注: AppId的值为单独标识该应用程序。
    ; 不要为其他安装程序使用相同的AppId值。
    ; (生成新的GUID,点击 工具|在IDE中生成GUID。)
    AppId={{F5F13326-A1B3-4AB9-9254-325D1B88913E}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    DefaultDirName=D:Program Files小小鸟软件
    DefaultGroupName={#MyAppName}
    DisableProgramGroupPage=yes
    OutputDir=C:Documents and SettingsAdministrator桌面
    OutputBaseFilename=zlMember
    SetupIconFile=F:ITlogo.ico
    Compression=lzma
    SolidCompression=yes

    [Languages]
    Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

    ;资源文件 包括安装包必需的文件,如.dll、配置文件等
    [Files]
    Source: "F:ITIT.exe"; DestDir: "{app}"; Flags: ignoreversion

    [Messages]
    BeveledLabel=-----------------------------------------------------------------小小鸟制作
    ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

    ;这里为检测.net2.0框架的代码,//判断程序是否存在//初始华程序事件

    [code]
    function InitializeSetup: Boolean;
    var Isbl: boolean; //声明变量
    var Isstr: string;
    //全局变量
    var MyProgChecked: Boolean;
    var Path:string ;
    ResultCode: Integer;
    begin
    if RegKeyExists(HKLM, 'SOFTWAREMicrosoft.NETFrameworkpolicyv2.0') then
    begin
    Result := true;
    end
    else
    begin
    if MsgBox('系统检测到您没有安装.Net Framework2.0,是否立刻下载并安装?', mbConfirmation, MB_YESNO) = idYes then
    begin
    Path := ExpandConstant('{pf}Internet Exploreriexplore.exe');
    Exec(Path, 'http://data.zhiluo.net/soft/Microsoft_DotNet2.0.rar', '' , SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
    MsgBox('请安装好.Net Framework2.0环境后,再运行本安装包程序!',mbInformation,MB_OK);
    Result := false;
    end
    else
    begin
    MsgBox('没有安装.Net Framework2.0环境,无法运行程序,本安装程序即将退出!',mbInformation,MB_OK);
    Result := false;
    end;
    end;

    begin //开始
    Isbl := true; //变量赋值 注意下方的“SOFTWAREIT_soft”要与安装时创建的注册表信息一致
    Isstr := '欢迎';
    if RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWAREIT_soft', 'config') then
    begin
    MsgBox('软件已安装过,如果需要重新安装,请先卸载再安装!',mbConfirmation, MB_OK);
    isbl := false;
    end
    else
    begin
    //MsgBox('无值',mbConfirmation, MB_OK);
    isbl := true;
    end;
    Result := Isbl;
    end; //结束
    end;

    [Icons]
    ;Commonprograms 程序菜单
    ;Userdesktop 桌面
    ;Group程序菜单的文件夹里

    Name: "{group}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"
    Name: "{group}{cm:ProgramOnTheWeb,{#MyWebName}}"; Filename: "{#MyAppURL}"
    Name: "{group}{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
    Name: "{userdesktop}小小鸟软件"; Filename: "{app}{#MyAppExeName}"; IconFilename: "{app}logo.ico";

    ;用于在用户系统中创建,修改或删除注册表健值
    [Registry]
    Root: HKLM ;SubKey:"SoftwareIT_soft";ValueType:dword;ValueName:config;ValueData:10 ;Flags:uninsdeletevalue

    ;安装结束后要运行的选项,可选
    [Run]
    Filename: "{app}{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
  • 相关阅读:
    【转】关于LWF——线性工作流
    【转】对抗拖库 ―― Web 前端慢加密
    【转】用C#调用Windows API向指定窗口发送
    使用 Redis 如何设计分布式锁?
    SpringBoot如何使用WebSocket实现前后端交互?
    Redis缓存使用中的热key问题
    Spring的BeanUtils的copyProperties方法需要注意的点
    解决github中图片不显示的问题
    java中JsonSerializer的用法(前后端单位转换必备)
    Spring Boot2.X中findOne的用法
  • 原文地址:https://www.cnblogs.com/joean/p/4837074.html
Copyright © 2011-2022 走看看