安装或者卸载时检测软件是否在运行

      在测试期间偶然遇到一个问题,有时卸载不干净,及时强制删除也不行,经过多次测试终于发现原来是程序没退出造成。先前的一个版本是调用IS自带API FindWindow实现的,而现在情况是,程序运行时间长窗口销毁了而进程却在(当然这也是程序本身的问题,但遇到此问题不得不想办法解决),方案只有一个枚举进程,看进程是否还在来判断软件是否退出,当然这也有一个问题,如果有相同进程名字的程序存在就会出问题。

      在请教了几位朋友后,得到的答复是加载外部API来枚举进程进而获取进程名,IS帮助给的代码如下:

  

 

至此又一个问题出现EnumProcessModules得到进程句柄是正确的,但获取GetModuleFileNameExA却是空,实在无奈。。。在多次检查不出问题的时候,果断用另一种方法,代码如下:

 

 

 

在调用时先声明外部函数,注册DLL即可,至此问题结束。至于是枚举窗口还是进程都有根据实际情况来定。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值