如何从win32进程中获取线程句柄列表



是否可以在win32(在c++中)上的任何给定时间获得当前进程的线程句柄列表?

您会发现这篇文章很有帮助。它提供了线程枚举的代码,其中包含使用工具帮助库所带来的细微差别。

为了方便(从物品上取下):

#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
int __cdecl main(int argc, char **argv)
{
 HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
 if (h != INVALID_HANDLE_VALUE) {
  THREADENTRY32 te;
  te.dwSize = sizeof(te);
  if (Thread32First(h, &te)) {
   do {
     if (te.dwSize >= FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) +
                      sizeof(te.th32OwnerProcessID)) {
       printf("Process 0x%04x Thread 0x%04xn",
             te.th32OwnerProcessID, te.th32ThreadID);
     }
   te.dwSize = sizeof(te);
   } while (Thread32Next(h, &te));
  }
  CloseHandle(h);
 }
 return 0;
}
  • Win32:如何在C++中枚举属于进程的所有线程
  • OpenThread将标识符转换为句柄

最新更新