Einzelnen Beitrag anzeigen

gabneo

Registriert seit: 15. Okt 2006
Ort: Deutsche Toskana :)
93 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Threads beenden, die ich nicht erzeugt habe

  Alt 30. Jul 2007, 14:58
Hi,
ich hatte mal ein ähnliches Problem und kann dafür ProcessXP nur empfehlen. Den "nachfolger" von Microsoft habe ich mir nur kurz angeschaut, wird dir nichts bringen.
Ziehe dir diese Version hier.
Per Rechtsklick auf den Prozess und über die Properties kommst du dann zu dem Reiter "Threads" da steht immerhin schon deren Stack-Addresse drinnen. guck dir das Teil genau an...damit kann man sehr viel machen.

greez
gabneo

Edit:
Der Microsoft-link funktioniert nicht: klickst du hier!

Edit2:
Ich hab hier noch ein bißchen Sourcecode ausgegraben, der dir anzeigt wieviele Threads du gerade noch laufen hast.
Delphi-Quellcode:
uses TlHelp32

function Findthread:integer;
var procid:dword; SHandle:THandle; Continue:boolean; ProcEntry:Pr ocessEntry32; i:integer;
begin
i:=0;
GetWindowThreadProcessID(application.Handle,@procid);
shandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,procid);
ProcEntry.dwSize:=Sizeof(ProcEntry);
  Continue:=Process32First(SHandle, ProcEntry);
  while Continue do
   begin
    if ProcEntry.th32ProcessID=ProcID then i:=procentry.cntThreads;
    Continue:=Process32Next(SHandle, ProcEntry);
  end;
  CloseHandle(SHandle);
  result:=i;
end;
Und dann gibt es hier in der Delphi-Praxis einige Diskussions-Threads über das entleeren von Speicherbereichen einfach suchen.
  Mit Zitat antworten Zitat