Einzelnen Beitrag anzeigen

Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#3

Re: Problem mit Auslastung durch je. Prozesse - GetProcessMe

  Alt 28. Jul 2005, 19:40
ok, wer lesen kann ist klar im Vorteil. Gesucht ist das process-handle (danke das du mich drauf aufmerksam gemacht hast )! Das bekomme ich jetzt zwar raus, weiter bringts mich trotzdem nicht...

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
VAR List1 : TStringList;
    i : integer;
    Item : TListItem;
    Test : PPROCESS_MEMORY_COUNTERS;
    ID : DWord;
    Temp : THandle;
begin
  List1 := TStringList.Create;
  GetProcessList(List1);
  for i := 0 to List1.Count-1 do
    begin
      Item := ListView1.Items.Add;
      Item.Caption := List1.Strings[i];
      GetWindowThreadProcessId(GetWH(List1.Strings[i]), ID); //GetWH bekommt das WindowHandl
      Temp := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, ID);
      IF GetProcessMemoryInfo(Temp, Test, SizeOf(Test)) THEN
      Item.SubItems.Add(IntToStr(Test.PeakWorkingSetSize));
    end;
end;

function GetWH(AExeName: string): THandle;
var
  SnapShot: THandle;
  p: TProcessEntry32;
  ProcessHandle: THandle;
begin
  Result := 0;
  WindowHandle := 0;
  ProcessHandle := 0;
  p.dwSize := SizeOf(p);
  SnapShot := CreateToolhelp32Snapshot(TH32CS_SnapProcess, 0);
  try
    if Process32First(SnapShot, p) then
      repeat
      if AnsiLowerCase(AExeName) = AnsiLowerCase(p.szExeFile) then
        ProcessHandle := p.th32ProcessID;
      until (ProcessHandle <> 0) or not Process32Next(SnapShot, p);
    EnumWindows(@MyEnumWindowProc, ProcessHandle);
    Result := WindowHandle;
  finally
    CloseHandle(SnapShot);
  end;
end;

function MyEnumWindowProc(AHandle: THandle; LParam: LongWord): boolean;
stdcall;
var
  ProcessID: THandle;
begin
  ProcessID := 0;
  GetWindowThreadProcessID(AHandle, ProcessID);
  Result := not (ProcessID = LParam);
  if not Result then
    WindowHandle := AHandle;
end;

Klappen tut es trotzdem nicht
Gruß St.Pauli
  Mit Zitat antworten Zitat