Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо