Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Anzahl der Threads eines Prozesses mit EnumProcessModusl

  Alt 5. Aug 2007, 03:42
Ich verwende folgende Routine, um die anzahl der Threads eines Processes zu ermitteln.
Delphi-Quellcode:
function TProcess.SetCountThreads: DWORD;
var
  hProcess : THandle;
  ModuleList : array[0..1024] of DWORD;
  cbNeeded : DWORD;
  foo: DWORD;
  bar: WideString;
  i: Integer;

begin
  cbNeeded := 0;
  hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, FProcID);
  if hProcess <> 0 then
  begin
    if EnumProcessModules(hProcess, @ModuleList, SizeOf(ModuleList), cbNeeded) then
    begin
      foo := SizeOf(DWORD);
      Result := cbNeeded div foo;
    end
    else
    begin
      Result := 0;
    end;
    CloseHandle(hProcess);
  end
  else
    begin
      Result := 0;
    end;
end;
Leider kommen da unsinnige Werte bei raus. Die Demo-Anwendung hat nur einen Thread, es werden aber 14 angezeigt. Wo liegt da mein Fehler?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat