C实现进程列表的获取
不多说,直接上代码
#include<windows.h>
#include<TlHelp32.h> //用于获取进程快照
#include<stdio.h> //在黑窗口打印进程名和ID
int main()
{
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32); //该结构体的大小
//给系统内的所有进程拍一个快照
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcess == INVALID_HANDLE_VALUE)
{
printf("失败");
getchar();
return -1;
}
//遍历进程快照,轮流显示每个进程的信息
BOOL bMore = Process32First(hProcess, &pe32);
while (bMore)
{
//pe32.szExeFile为多字节
printf("进程名称:%s\n进程ID:%u\n\n", pe32.szExeFile,pe32.th32ParentProcessID);
bMore = Process32Next(hProcess, &pe32);
}
//最后关闭操作完成后的句柄
CloseHandle(hProcess);
getchar();
return 0;
}
运行结果: