Uzyskiwanie ThreadID (i nazwy) uruchomionego procesu.

0

Witam,

Tak jak w temacie. Potrzebuję uzyskać ID pewnego wątku, którego nazwę znam (i aplikację do której on należy też). Trochę google pomogło i na pewnym forum znalazłem dość spory fragment kodu, który pobiera i wypisuje na ekranie wszystkie identyfikatory wątków dla danego programu. I pytanie brzmi: Jak za pomocą ThreadID sprawdzić nazwę wątku? I czy ten kod jest poprawny? Załączam fragment kodu wypisującego ThreadIdy ;):

function GetTthreadsList(PID:Cardinal): Boolean;
  var
    SnapProcHandle: THandle;
    NextProc      : Boolean;
    TThreadEntry  : TThreadEntry32;
  begin
    SnapProcHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); //Takes a snapshot of the all threads
    Result := (SnapProcHandle <> INVALID_HANDLE_VALUE);
    if Result then
      try
        TThreadEntry.dwSize := SizeOf(TThreadEntry);
        NextProc := Thread32First(SnapProcHandle, TThreadEntry);//get the first Thread
        while NextProc do
        begin

          if TThreadEntry.th32OwnerProcessID = PID then //Check the owner Pid against the PID requested
          begin
              Writeln('Thread ID      '+inttohex(TThreadEntry.th32ThreadID,8));
              Writeln('');
          end;

          NextProc := Thread32Next(SnapProcHandle, TThreadEntry);//get the Next Thread
        end;
      finally
        CloseHandle(SnapProcHandle);//Close the Handle
      end;
  end;
0

Kod wygląda na poprawny ale pierwszy raz słyszę o czymś takim jak nazwa wątku (znaczy mam na myśli aby coś takiego było w WinApi) :-/

0

Ok, skoro nie ma nic takiego to trudno ;). Najwyżej poradzę sobie w jakiś inny sposób. Może metodą prób i błedów :P.
A jakie jeszcze informacje można uzyskać przy pomocy ThreadID?

1 użytkowników online, w tym zalogowanych: 0, gości: 1