Inno Setup определяет, установлен ли Apache - PullRequest
0 голосов
/ 14 декабря 2018

Существует ли надежный способ обнаружения с помощью Inno Setup, если на компьютере установлен Apache для Windows?Я использую версию Apache Lounge (https://www.apachelounge.com/download/), которая не имеет встроенного установщика, но при необходимости устанавливает определенную службу.

Я могу искать, присутствует ли эта служба Windowsна машине, но я боюсь, что другие версии Apache могут установить другой сервис или вообще не использовать его (но он все еще может работать в фоновом режиме и создавать помехи).

1 Ответ

0 голосов
/ 16 декабря 2018

Вы можете проверить любой запущенный процесс, имя которого включает ключевое слово «apache» (даже сервисы являются процессами).

Вы можете использовать код из этого ответа:
Как проверить с помощью InnoПрограмма установки, если процесс выполняется в 64-разрядной версии Windows 2008 R2?

Просто замените запрос на:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...