![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить ID-шники нитей (Threads) процесса ?
Phantomaz © (2004-01-10 16:44:00)Как получить ID-шники нитей (Threads) процесса,
если известен его ID (ProcessID) ?
Phantomaz (2004-01-11 13:56:00) [1]Спасибо !
VMcL (2004-01-11 04:17:00) [2]VMcL © (11.01.04 04:12) [3]относится к NtQuerySystemInformation.
VMcL (2004-01-11 04:12:00) [3]>>Burmistroff (10.01.04 16:57) [2]
Замечание: Win 2000 or higher.
Burmistroff (2004-01-10 16:57:00) [4]OpenProcess, а дальше - NtQuerySystemInformation.
Либо (что значительно проще):
(ex - массив DWORD'ов)
var
SnapProcHandle: THandle;
ThreadEntry: TThreadEntry32;
Next: Boolean;
begin
try
ex[0]:=0;
SnapProcHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if SnapProcHandle <> THandle(-1) then
begin
ThreadEntry.dwSize := Sizeof(ThreadEntry);
Next := Thread32First(SnapProcHandle, ThreadEntry);
while Next do
begin
if ThreadEntry.th32OwnerProcessID = ProcessID then
begin
ex[0]:=ex[0]+1;
ex[ex[0]]:=ThreadEntry.th32ThreadID;
end;
Next := Thread32Next(SnapProcHandle, ThreadEntry);
end;
CloseHandle(SnapProcHandle);
end;
finally
end;
end;
YuRock (2004-01-10 16:55:00) [5]Thread32First/Thread32Next