源代码:
#include <stdio.h>
#include <windows.h>
#include <TlHelp32.h>
int main()
{
// 为进程的所有线程拍个快照
HANDLE hSnapshort = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshort == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot used failed!\n");
return -1;
}
// 获得线程列表,里面记录了线程的详细信息,再使用Thread32First和Thread32Next遍历快照中记录的每个线程信息
PROCESSENTRY32 stcProcessInfo; // THREADENTRY32 stcThreadInfo;
stcProcessInfo.dwSize = sizeof(stcProcessInfo);
BOOL bRet = Process32First(hSnapshort, &stcProcessInfo);
printf("ProcessName\t\t\t ProcessID\t ThreadNum\t ParentID\n");
while (bRet)
{
// printf("%s\t\t\t %lu\t %lu\t %lu\n", stcProcessInfo.szExeFile, stc