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