Можно ли проверить, запущена ли программа, прежде чем пытаться ее установить? (Inno Setup) - PullRequest
1 голос
/ 04 марта 2020

Я использую Inno Setup для создания установщика. Когда я запускаю созданный мной установщик, мне нужно проверить, запущена ли программа, которую я пытаюсь установить, или нет, и если она запущена, мне нужно показать соответствующее сообщение, пока я не закрою его или не выйду из системы. Возможно ли это сделать?

1 Ответ

2 голосов
/ 04 марта 2020

Если это ваше приложение, заставьте его создать мьютекс. Тогда вы можете использовать директиву AppMutex .

[Setup]
AppMutex=MyProgMutex

enter image description here


Если вы не можете изменить приложение, вы необходимо код проверки для запуска приложения в Inno Setup. Например, вы можете использовать функцию IsAppRunning из ответа от @RRUZ на Как проверить с помощью Inno Setup, работает ли процесс на Windows 2008 R2 64-бит? в InitializeSetup функция события .

function InitializeSetup(): Boolean;
begin
  Result := True;
  while IsAppRunning('MyProg.exe') do
  begin
    if MsgBox('Program is running, please close it', mbError, MB_OKCANCEL) = IDCANCEL then
    begin
      Result := False
      Exit;
    end;
  end;
end;

На основе аналогичного вопроса об удалении:
Подготовка к удалению, например Подготовка к установке - Настройка Inno

...