拍进程快照,代码实现遍历windows进程

  • 步骤

1.CreateToolhelp32Snapshot拍摄快照
2.Process32First,Process32Next枚举进程信息

  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <windows.h>
#include <Tlhelp32.h>

BOOL EnumProcess();

void main()
{
EnumProcess();
getchar();
}

BOOL EnumProcess()
{
PROCESSENTRY32 pe32 = {0};
pe32.dwSize = sizeof(PROCESSENTRY32);
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//拍进程快照
if (INVALID_HANDLE_VALUE == hProcessSnap)
{
printf("CreateToolhelp32Snapshot Error :%d",GetLastError());
}
BOOL Ret = Process32First(hProcessSnap,&pe32);//枚举快照
printf("进程ID----进程名称\n");
while(Ret)
{
printf("%d------",pe32.th32ProcessID);
printf("%s\n",pe32.szExeFile);
Ret = Process32Next(hProcessSnap,&pe32);//下一进程信息
}
return TRUE;
}