Вопрос Открыт ли .exe

Vadik_2K

Новичок
Как проверить если открыт .exe (Если игра включена) то установка не шла бы
 

vint56

Ветеран
Проверенный
Vadik_2K,
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
function IsAppRunning(const FileName : string): Boolean;
var
    FSWbemLocator: Variant;
    FWMIService   : Variant;
    FWbemObjectSet: Variant;
begin
    Result := false;
    FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
    FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
    FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName]));
    Result := (FWbemObjectSet.Count > 0);
    FWbemObjectSet := Unassigned;
    FWMIService := Unassigned;
    FSWbemLocator := Unassigned;
end;

function InitializeSetup: boolean;
begin
  result := not IsAppRunning('winamp.exe');
  if not result then
  MsgBox('Процесс Winamp.exe запущен установка невозможна', mbError, MB_OK);
end;
 
Сверху