• Inno Setup脚本


    某天夜晚一场狂风暴雨,由于办公室座位旁的窗户没关,笔记本电脑泡了一夜水,无法开机,无奈送修,里面的大量资料也不知道会不会丢失。

    is的脚本只有重新写了,重新研究了一下检测程序是否正在运行的判断方法,另外新增了限制安装程序重复开启的条件。还是在这里备份一下。

    ; 脚本由 Inno Setup 脚本向导 生成!
    ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
    
    #define MyAppName "客服平台"
    #define MyAppVersion "1.6.5"
    #define MyAppPublisher "机构名"
    #define MyAppURL "http://www.网站名.com/"
    #define MyAppExeName "应用程序名.exe"
    
    [Setup]
    ; 注: AppId的值为单独标识该应用程序。
    ; 不要为其他安装程序使用相同的AppId值。
    ; (生成新的GUID,点击 工具|在IDE中生成GUID。)
    AppId={{1B7F2E1D-F0D3-44D0-B460-61C4B0038784}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    VersionInfoProductVersion={#MyAppVersion}  
    VersionInfoProductTextVersion={#MyAppVersion}  
    VersionInfoVersion={#MyAppVersion}  
    VersionInfoCompany={#MyAppPublisher}  
    VersionInfoCopyright={#MyAppPublisher}{#'版权所有'}
    
    DefaultDirName={pf}estChat
    DisableDirPage=yes
    DisableProgramGroupPage=yes
    
    OutputDir=D:publishInstaller
    OutputBaseFilename=ClientSetup
    SetupIconFile=D:......图片名.ico
    Compression=lzma
    SolidCompression=yes
    
    [Languages]
    Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
    
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
    
    [CustomMessages]  
    FinishedHeadingLabel=恭喜你,{#MyAppName}安装成功!  
    FinishedLabel=安装程序已在您的电脑中安装了“{#MyAppName}”。此应用程序可以通过选择安装的快捷方式运行。%n%n单击 [完成(F)] 关闭安装程序。  
    Tooltip={#MyAppName} {#MyAppVersion}  
    TooltipText={#MyAppName}安装正在开始...  
    MenuStrs=显示/隐藏  {#MyAppName} 安装程序;-;关于 {#MyAppName} ;-;退出 {#MyAppName} 安装
    
    [Files]
    Source: "D:...程序路径...inRelease*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
    
    [Icons]
    Name: "{commonprograms}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"
    Name: "{commondesktop}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"; Tasks: desktopicon
    
    [Run]
    Filename: "{app}{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
    
    [Code]
    function InitializeSetup():boolean;
    //var bResult:boolean;
    var ErrorCode: Integer;  
    
    begin
    Result := true;      
    //检测是否有另一个安装程序在运行  
    //bResult :=  CheckForMutexes('MutexChatClientSetup');  
    if CheckForMutexes('MutexChatClientSetup') then  
        begin  
           MsgBox('另一安装程序已经在运行,此安装程序将退出。',mbInformation,MB_OK);  
           Result := false;  
           Exit;  
        end 
    else  
        begin  
            //没有就创建互斥量  
            CreateMutex('MutexChatClientSetup');
            if CheckForMutexes('自定义名称') then   //自定义名称在app.xaml.cs中为:_mutex = new Mutex(false, "ZestChatClient");
                begin
                if MsgBox('检测到客服端正在运行中!'#13'点击 "是" 关闭客服端继续安装;'#13'点击 "否" 退出安装程序!', mbConfirmation, MB_YESNO) = IDYES then
                    begin
                        ShellExec('open', ExpandConstant('{cmd}'), '/c taskkill /f /t /im ChatClient.exe', '', SW_HIDE, ewNoWait, ErrorCode);
                        Result:= true;
                   end
                else
                   Result:= false;
                end
            else  
                Result := true;  
        end;  
    end;
  • 相关阅读:
    springboot+swagger生成api文档
    字符串格式化
    Navicat过期
    网页版的支付宝授权登录(vue+java)
    window,sts安装python
    PageHelper分页+排序
    android那些事之Bitmap、InputStream、Drawable、byte[]、Base64之间的转换关系
    两种解析JSON的方法
    蓝牙那些事之远程设备
    蓝牙那些事之状态监听
  • 原文地址:https://www.cnblogs.com/lionwang/p/9089765.html
Copyright © 2020-2023  润新知