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}\ZestChat
DisableDirPage=yes
DisableProgramGroupPage=yes

OutputDir=D:\publish\Installer
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:\...\程序路径\...\bin\Release\*"; 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;

猜你喜欢

转载自www.cnblogs.com/lionwang/p/9089765.html