Is it possible to check if program is already running before trying to install it? (Inno Setup)

前端 未结 1 1792
天命终不由人
天命终不由人 2020-12-11 11:44

I\'m using Inno Setup to create the installer. When I launch the installer I\'ve created I need to check whether the program I\'m trying to install is already running or not

相关标签:
1条回答
  • 2020-12-11 12:37

    If it is your application, make it create a mutex. Then you can use AppMutex directive.

    [Setup]
    AppMutex=MyProgMutex
    


    If you cannot modify the application, you need to code the check for running application in Inno Setup. You can for example use IsAppRunning function from the answer by @RRUZ to How to check with Inno Setup, if a process is running at a Windows 2008 R2 64bit? in InitializeSetup event function.

    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;
    

    Based on a similar question on uninstaller:
    Preparing to Uninstall like Preparing to Install Page - Inno Setup

    0 讨论(0)
提交回复
热议问题