Inno setup检测进程存在并杀掉进程

安装包安装的时候需要先卸载再重新安装,如果程序还在运行,就无法正常卸载,需要先关闭进程再卸载

Inno setup杀死进程的方法

[code]
function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function InitializeSetup(): Boolean;
var
  ResultStr: String;
  ResultCode: Integer;

begin

    #检测进程
    begin
      Result:= true;
      if RunTask('kk.exe', false) then
        begin
        KillTask('kk.exe');
        Result:= true; 
        end
      else
        Result:= true;
    end;

    #卸载程序
    if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\kk_is1', 'UninstallString',         ResultStr) then
    begin
      ResultStr := RemoveQuotes(ResultStr);
      Exec(ResultStr, '/silent', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
    end;
end;

其中检测进程和杀死进程需要用到ISTask.dll,该dll要与应用程序放在同一级目录并一起打包

卸载程序是通过检测注册表来判断是否安装过

ISTask.dll下载地址:https://download.csdn.net/download/a137748099/12851377

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值