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;