; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "消息助手"
#define MyAppVersion "1.0"
#define MyAppPublisher "消息助手, Inc."
#define MyAppURL "http://www.newhero.com.cn/"
#define MyAppExeName "消息助手.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
; 打包时需要生成一个新的GUID(UUID uuid = UUID.randomUUID();System.out.println(uuid);)
AppId={{85773db6-6d50-40ad-9371-c0f603bb1f31}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=消息助手
;默认开始菜单名
DefaultGroupName=消息助手
Compression=lzma
SolidCompression=yes
DisableFinishedPage=yes
AlwaysRestart=no

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

[Files]
Source: "E:\innosetup\*"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\innosetup\kpsignx.dll"; DestDir: "C:\Windows\System32"; Flags: ignoreversion
Source: "E:\innosetup\kpsignx.dll"; DestDir: "C:\Windows\SysWOW64"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{userdesktop}\消息助手"; Filename: "{app}\消息助手.exe"; IconFilename: "{app}\favicon.ico"
Name: "{group}\消息助手"; Filename: "{app}\消息助手.exe";
Name: "{group}\卸载消息助手"; Filename: "{app}\unins000.exe"

[Run]
;Filename: "{app}\{#MyAppExeName}"; Flags: nowait postinstall skipifsilent
Filename:"{app}\kpsignx.bat";Parameters:"-open"

;自定义不同语言文本
[CustomMessages]
chinesesimp.checkSoftTip=安装程序检测到将安装的软件正在运行!%n%n点击"确定"终止软件后继续操作,否则点击"取消"。

[Code]
 
  // 自定义函数,判断软件是否运行,参数为需要判断的软件的exe名称
  function KDetectSoft(strExeName: String): Boolean;
  // 变量定义
  var ErrorCode: Integer;
  var bRes: Boolean;
  var strFileContent: AnsiString;
  var strTmpPath: String;  // 临时目录
  var strTmpFile: String;  // 临时文件,保存查找软件数据结果
  var strCmdFind: String;  // 查找软件命令
  var strCmdKill: String;  // 终止软件命令
  begin
    strTmpPath := GetTempDir();
    strTmpFile := Format('%sfindSoftRes.txt', [strTmpPath]);
    strCmdFind := Format('/c tasklist /nh|find /c /i "%s" > "%s"', [strExeName, strTmpFile]);
    strCmdKill := Format('/c taskkill /f /t /im %s', [strExeName]);
    //ShellExec('open', ExpandConstant('{cmd}'), '/c taskkill /f /t /im 你的软件名.exe', '', SW_HIDE, ewNoWait, ErrorCode);
    //bRes := ShellExec('open', ExpandConstant('{cmd}'), '/c tasklist /nh|find /c /i "你的软件名.exe" > 0.txt', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    bRes := ShellExec('open', ExpandConstant('{cmd}'), strCmdFind, '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    if bRes then begin
        bRes := LoadStringFromFile(strTmpFile, strFileContent);
        strFileContent := Trim(strFileContent);
        if bRes then begin
           if StrToInt(strFileContent) > 0 then begin
              if MsgBox(ExpandConstant('{cm:checkSoftTip}'), mbConfirmation, MB_OKCANCEL) = IDOK then begin
               // 终止程序
               ShellExec('open', ExpandConstant('{cmd}'), strCmdKill, '', SW_HIDE, ewNoWait, ErrorCode);
               Result:= true;// 继续安装
              end else begin
               Result:= false;// 安装程序退出
               Exit;
              end;
           end else begin
              //MsgBox('软件没在运行', mbInformation, MB_OK);
              Result:= true;
              Exit;
           end;
        end;
    end;
    Result :=true;
  end;  
   
        
  // 卸载时关闭软件
  function InitializeUninstall(): Boolean;
  begin
    Result := KDetectSoft('消息助手.exe');
  end;

//安装包百度搜索 inno setup 下载即可,汉化将chinesesimp.isl文件放到Languages下面即可汉化(此汉化包是给打包以后的安装包汉化的,不是本软件等的汉化包)

本人亲测-inno setup打包EXE(较完整实例)的更多相关文章

  1. inno setup 打包exe程序

    inno setup 用于打包生成安装程序, 是通过的一个脚本 可以将 exe 执行文件以安装的形式,解压,添加依赖,创建快捷方式. 例如,我们写了个winform,我们怎么通过安装的形式,给客户的机 ...

  2. Inno Setup 打包工具总结

    Inno Setup 打包工具总结 分类: Install Setup 2013-02-02 15:44 2386人阅读 评论(0) 收藏 举报 最近打包用到了Inno setup,在这个过程中容易犯 ...

  3. 使用Inno Setup 打包.NET程序,并自动安装.Net Framework

    使用Inno Setup 打包.NET程序,并自动安装.Net Framework http://www.cnblogs.com/xiaogangqq123/archive/2012/03/19/24 ...

  4. Inno Setup打包的程序提升为管理员权限

    Inno Setup打包的程序在Win7 64位系统上安装,安装步骤最后一步若选中运行程序,会跳出一个错误提示框. 这是因为64位win7系统运行程序时需要管理员权限,而打包的文件并没有这个权限就试图 ...

  5. Inno Setup打包添加和去除管理员权限

    原文:Inno Setup打包添加和去除管理员权限 添加管理员权限 1.在[Setup]节点添加 PrivilegesRequired=admin 2.进入安装目录,找到文件SetupLdr.e32, ...

  6. c# 日期函数DateTime.ToString()日期的各种格式 (本人亲测)

    c# 日期函数DateTime.ToString()日期的各种格式  (本人亲测) 平时写代码的过程难免遇到对日期的格式转换,这个时候很容易忘记具体格式的转换是什么,当然这不是什么复杂的,查一下就能找 ...

  7. 【程序打包工具 Inno Setup】CreateProcess 失败:代码 740(Inno Setup打包的程序提升为管理员权限)

    原文参考 https://www.cnblogs.com/SnailProgramer/p/4243666.html http://blog.csdn.net/x356982611/article/d ...

  8. Inno Setup CreateProcess 失败:代码 740(Inno Setup打包的程序提升为管理员权限)

    原文参考 https://www.cnblogs.com/SnailProgramer/p/4243666.html http://blog.csdn.net/x356982611/article/d ...

  9. 推荐几个最好用的CRM软件,本人亲测

    CRM是英文Customer Relationship Management 的简写,一般译作“客户关系管理”.CRM最早产生于美国,由Gartner Group 首先提出的CRM这个概念的.20世纪 ...

随机推荐

  1. 使用redis时遇到的问题及解决方法

    最近在向redis中写入数据的时候,报了下面的错误: failed opening the rdb file crontab (in server root dir /etc) for saving ...

  2. oracle 查看表空间使用比

    select b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes / / 大小M, (b.bytes - sum(nvl(a.bytes, ))) / ...

  3. C#连接内存数据库redis【1、Redis存读取数据】

    这一节演示下载.NET中怎样使用Redis存储数据.在.net中比较常用的客户端类库是ServiceStack,看下通过servicestack怎样存储数据. DLL下载:https://github ...

  4. JMeter 中的如何区分 Server Time 和 Network Time

    在 LR 中是有一个“网页细分图”的,通过这个图,你可以比较容易的区分哪些请求的响应时间最长,如果响应时间过程,是消耗在server处理的时候,还是消耗在网络传输过程中——也就是所谓的 Server ...

  5. delphi raise 语句: 抛出异常

    //例1:begin  raise Exception.Create('抛出异常');end;//例2:begin  raise Exception.CreateFmt('%s %d', ['错误代码 ...

  6. vs code 设置 保存自动格式化vue代码

    配置 ESLint (需安装 Prettier - Code formatter 插件) command + shift + p  打开用户设置 // vscode默认启用了根据文件类型自动设置tab ...

  7. 大容量类Redis存储--Pika介绍

    嘉宾介绍 大家好,首先自我介绍一下,我是360 web平台-基础架构组的宋昭,负责大容量类redis存储pika的和分布式存储Bada的开发工作,这是我的github和博客地址,平时欢迎指正交流^^ ...

  8. Skywalking部署+NetCore客户端

    一.介绍 应用官方的说法:Apache SkyWalking是观察性分析平台和应用性能管理系统.提供分布式追踪.服务网格遥测分析.度量聚合和可视化一体化解决方案 GitHub地址:https://gi ...

  9. PJzhang:关闭wps小广告和快速关闭445端口

    猫宁!!! ​​   kali linux上安装的wps,没有广告,而且轻巧简洁.   如果你在windows上安装wps,除了ppt.word.excel,还会有一个h5的应用,当然,最令人烦扰的当 ...

  10. Python面试简介及并行并发

    今天的分享内容大体如下: 一. 面试 1. 什么是面试 2. 优秀的面试 二. Python综述 1. Python设计哲学及版本变迁 2. Python发展现状及其他语言使用场景 3. GIL 4. ...