Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как получить информацию запущен процесс или нет ??


Автор: NightKnight 17.3.2005, 08:41
Мне нужно получить информацию о конкретном процессе из Delphi, тоесть запущен он или нет и на сколько загружает процессор. ЗАранее спасибо

Автор: Rennigth 17.3.2005, 09:21
это запущен или нет:
http://forum.vingrad.ru/index.php?showtopic=37938&st=0&#entry285692

Автор: Rennigth 17.3.2005, 09:41
на счет загруженности процессора покопайся в
tlhelp32, psAPI

как пример выделенная память процессу:

Код

uses  tlhelp32,  psAPI;
//...

function GetProcessID(AName : PChar ) : Integer;
var
  lSnapHandle, lProcHandle: THandle;
  ProcStruct : PROCESSENTRY32;
  lProcessPath : Pchar;
  PID : Cardinal;
begin
  Result := 0;
  lSnapHandle := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
  if lSnapHandle = 0 then
    exit;
  ProcStruct.dwSize := sizeof( PROCESSENTRY32 );

  if Process32First(lSnapHandle, ProcStruct) then
  begin
    try
      repeat
        lProcessPath := ProcStruct.szExeFile;
        if uppercase(lProcessPath) = uppercase(AName) then
        begin
          PID := ProcStruct.th32ProcessID; //åñëè ïîíàäîáèòüñÿ
          Result := PID;
          Break;
        end;
      until not Process32Next(lSnapHandle, ProcStruct);
    finally
      CloseHandle(lSnapHandle);
    end;
  end;
end;

procedure GetProcessMemory(Process: Integer): Integer;
var
  pmc: PPROCESS_MEMORY_COUNTERS;
  cb: Integer;
begin
  Result := 0;
  cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
  GetMem(pmc, cb);
  try
    pmc^.cb := cb;
    if GetProcessMemoryInfo(Process, pmc, cb) then
      Result := pmc^.WorkingSetSize;
  finally
    FreeMem(pmc);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  lProcess: Integer;
begin
  lProcess := GetProcessID(PChar(Edit1.Text));
  if lProcess <> 0 then
    ShowMessage(IntToStr(GetProcessMemory(lProcess)));
end;



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)