<分区>
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)) {
HANDLE Handle = OpenProcess(
PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
FALSE,
te.th32OwnerProcessID /* This is the PID, you can find one from windows task manager */
);
TCHAR Buffer[MAX_PATH];
wprintf(L"Process %u IdThred=%u\n",
te.th32OwnerProcessID, te.th32ThreadID);
}
te.dwSize = sizeof(te);
} while (Thread32Next(h, &te));
}
CloseHandle(h);
}
这段代码列出了所有进程和进程的所有线程,但我希望它只列出进程的线程 pid ... 例子: 资源管理器.exe pid = 5454 通过pid要他有线程的id和线程状态。