// 进程拍照PROCESS.cpp: 主项目文件。
#include "stdafx.h"
#include <Windows.h>
#include <TlHelp32.h> //声明快照函数头文件
#include <cstdio>
using namespace std;
int main(int argc,char*argv[])
{
PROCESSENTRY32 pe32; //定义结构变量
pe32.dwSize = sizeof(pe32); //设置结构大小
//给系统的所有进程进行拍照
HANDLE hProcessSnap= ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("函数CreateToolhelp32Snapshot调用失败!\n");
return -1;
}
//利用循环遍历进程,轮流显示进程信息
BOOL bMore = ::Process32First(hProcessSnap,&pe32);
while(bMore)
{
printf("进程名称:%s\n",pe32.szExeFile);
printf("进程ID号:%u\n\n",pe32.th32ProcessID);
bMore = ::Process32Next(hProcessSnap,&pe32);
}
//最后清除snapshot对象
::CloseHandle(hProcessSnap);
getchar();
return 0;
}