Inno Setup安装时判断并关闭已经运行的应用exe

在使用Inno Setup创建安装包时,需要在安装过程中检查并关闭已运行的应用程序以避免冲突。本文介绍了作者遇到的问题及尝试的解决方案,包括FindWindowByWindowName、IsTask.dll和AppMutex等方法的不足,并最终分享了一个通过CheckMutex和ShellExec结合taskkill命令的简洁方法,成功解决了问题,实现了流畅的用户体验。
摘要由CSDN通过智能技术生成

  就很简单的一个功能,Inno setup制作的安装包,在安装时候,判断是否之前有本程序的实力在运行,运行的话终止他,貌似很简单,折腾了我1小时。
  网上找的好多方案,不理想不理想!我就给大家列举下这些我认为不理想的原因!
  网上方案1: 在Code段用FindWindowByWindowName、FindWindowByClassName……对不起我的客户端的标题是会变的啊!我的客户端主窗口是对话框啊,窗口类名都一样(#32770)啊!
  网上方案2: 用个叫IsTask.dll的外部扩展,Inno setup没,自己网上下,说白了就是个用c++写的一个dll,自己也能写,回头用Code pascal语言调用……,RunTask、KillTask用的这两个函数……,蛋疼的事情发生了,本来秒开的安装包,要卡个5秒以上在打开……怀疑是IsTask.dll破吧,自己写个,c++中char对应pascal中PAnsiChar,函数导出调用方案方法注意stdcall,弄好,还是通过进程名加载dll……结果……卡……5秒以上……原来是inno setup自己low……升级inno setup到最新5.5.9,一样……
  网上方案3: 找啊找老半天,发现SETUP段里可以家个APPMUTEX,不错,我的exe里为了不能多开也弄了个非匿名的mutex,马上家上一句话,点开安装……我了个去,结果只是提示你有你的exe在运行,自己去关闭吧……啥体验啊……
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值