是否有万无一失的方法可以使用Inno Setup来检测是否在计算机上安装了Apache for Windows?我正在使用没有内置安装程序的Apache Lounge版本(https://www.apachelounge.com/download/),但是如果需要,它会安装特定的服务。
我可以搜索计算机上是否存在Windows服务,但是恐怕其他Apache版本可能会安装其他服务或根本不安装任何服务(但它可能仍在后台运行并产生干扰)。 / p>
答案 0 :(得分:0)
您可以检查名称中包含“ apache”关键字(甚至服务都是进程)的任何正在运行的进程。
您可以使用以下答案中的代码:
How to check with Inno Setup, if a process is running at a Windows 2008 R2 64bit?
只需将查询替换为:
Format('SELECT Name FROM Win32_Process Where Name like "%%%s%%"', [FileName])
然后您可以像使用它一样
function InitializeSetup(): Boolean;
begin
Result := True;
if IsAppRunning('apache') then
begin
MsgBox('Apache is installed and running, cannot proceed.', mbError, MB_OK);
Result := False;
end;
end;