Innosetup 安装包 在安装前判断是否有其他安装程序正在安装...

方法有:

1.使用系统服务WinMgmts 系统信息
通过 "winmgmts:\\.\root\CIMV2" 遍历进程列表。

var
FSWbemLocator: Variant;
FWMIService   : Variant;
FWbemObjectSet: Variant;
begin
  Result := false;
   FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
   FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
    FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName]));
   Result := (FWbemObjectSet.Count > 0);
   FWbemObjectSet := Unassigned;
  FWMIService := Unassigned;
   FSWbemLocator := Unassigned;

end;

注意:使用wim遍历进程必须开启wim服务

2.使用插件ISTask.dll,psvince.dll 发现有问题,没成功.

3.使用插innosetup自带的 

function FindWindowByWindowName(const WindowName: String): HWND;函数

 var appWnd: HWND;
 begin
 Result := false;
 appWnd :=  FindWindowByWindowName('窗口名');
     if (appWnd <> 0) then
     begin
      MsgBox('已有安装程序正在安装', mbConfirmation, MB_YESNO);
     end;
 end;

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值