Innosetup 安装包 在安装前判断是否有其他安装程序正在安装...
2017-03-18 14:26
399 查看
方法有:
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;
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;
相关文章推荐
- Inno Setup安装、卸载时判断是否程序正在运行
- Installshield 在安装或者卸载过程中,判断某一程序是否正在运行
- Inno Setup安装、卸载时判断是否程序正在运行
- InstallShield安装包制作笔记:判断安装时需要重写或者删除的程序是否打开并处理
- Inno Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- Inno Setup安装、卸载时判断是否程序正在运行
- Inno 4000 Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- Inno Setup安装、卸载时判断是否程序正在运行
- Inno 4000 Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- 如何判断msi安装包程序是否安装及安装路径
- InnoSetup 安装和卸载时判断程序是否运行
- Inno Setup安装、卸载时判断是否程序正在运行
- InnoSetup 安装和卸载时判断程序是否运行的正确方式
- Inno Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- innosetup 安装前、卸载前判断是否有进程正在运行<转>
- IOS判断是否安装了自己的另一个程序。
- Centos7程序里面判断系统是否正在关机或者重启(Check if Centos7 is rebooting or shuting down in program.)
- 览器判断是否安装了ios/android客户端程序
- 浏览器判断是否安装了ios/android客户端程序
- 判断是否有全屏程序正在运行(C#)