首页 > 解决方案 > Inno Setup 检测是否安装了 Apache

问题描述

如果在计算机上安装了 Apache for Windows,是否有一种万无一失的方法来检测使用 Inno Setup?我正在使用 Apache Lounge 版本 ( https://www.apachelounge.com/download/ ),它没有内置安装程序,但如果需要,它会安装特定服务。

我可以搜索计算机上是否存在该 Windows 服务,但我担心其他 Apache 版本可能会安装不同的服务或根本没有服务(但它可能仍在后台运行并产生干扰)。

标签: windowsapacheprocessinstallationinno-setup

解决方案


您可以检查名称中包含“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;

推荐阅读