15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как получить список процессов в Win9x

function IsRunning( sName : string ) : boolean;
var
  han : THandle;
  ProcStruct : PROCESSENTRY32; // from "tlhelp32" in uses clause
  sID : string;
begin
  Result := false;
  // Get a snapshot of the system
  han := CreateToolhelp32Snapshot( TH32CS_SNAPALL, 0 );
  if han = 0 then
    exit;
  // Loop thru the processes until we find it or hit the end
  ProcStruct.dwSize := sizeof( PROCESSENTRY32 );
  if Process32First( han, ProcStruct ) then
    begin
      repeat
        sID := ExtractFileName( ProcStruct.szExeFile );
        // Check only against the portion of the name supplied, ignoring case
        if uppercase( copy( sId, 1, length( sName ) ) ) = uppercase( sName ) then
          begin
            // Report we found it
            Result := true;
            Break;
          end;
      until not Process32Next( han, ProcStruct );
    end;
  // clean-up
  CloseHandle( han );
end;