; 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. python 构建自己的log系统

    python的logging模块提供了记录程序运行情况的日志功能,类似于Apache的log4j,很好很强大,这里我们就来看一下Python中内置的日志模块logging用法详解 logging模块简 ...

  2. [Java]用于将链表变成字符串并在元素之间插入分隔符的有用函数“String.join”

    将链表变成字符串并在元素之间插入分隔符,这种动作最常见于组合sql文“select a,b,c from tb”这种场景scenario,其中a,b,c你是存贮在链表中的, 如果要加逗号要么在循环中识 ...

  3. 菜鸟的周末_Python试水

    搭建开发环境 下载安装包,打开官网,选择最新Windows Installer版本下载. 运行安装包,勾选Add Python 3.8 to Path,选择Install Now,等待安装完成,直接关 ...

  4. Mysql密码忘记,修改密码方法

    1.set password for ‘root’@’localhost’ = password(‘czllss’); -- czllss为新密码

  5. 数据中心网络架构的问题与演进 — SDN

    目录 文章目录 目录 前文列表 OpenFlow 源起 从 OpenFlow 衍生 SDN 前文列表 <数据中心网络架构的问题与演进 - 传统路由交换技术与三层网络架构> <数据中心 ...

  6. phpstrom--------config php interpreter

    phpstrom是一款比较好用的php代码编辑器,使用phpstrom进行代码编辑时我可能会需要看一下在网页上的实际效果,但是PHPstrom本身只是一款编辑器,不具备运行功能,我们需要自己安装一个服 ...

  7. Django框架 选项卡加active类的方案

    ------html部分----- <div class="left-menu"> <div class="menu-body"> &l ...

  8. delphi 双击dbgrid 调用另一窗体的例子

    unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form ...

  9. 行为验证码的asp.net MVC实现方式 qq521877626

    界面http://localhost:你的服务器/Code/index 实现步骤: 注册账号https://www.geetest.com   新增验证 下载demo (url:http://docs ...

  10. PHP $_SERVER超全局变量

    $_SERVER是php中的超全局变量,一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组.这个数组中的项目由 Web 服务器创建. ...