#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
#include <iostream>
using namespace std;
BOOL GetProcessList()
{
HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
//对系统中当前所有的进程拍下快照
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
return FALSE;
}
//在使用 PROCESSENTRY32 结构之间需要先设置好该结构的大小
pe32.dwSize = sizeof(PROCESSENTRY32);
//获取第一个进程
if(!Process32First(hProcessSnap, &pe32))
{
CloseHandle(hProcessSnap);
return FALSE;
}
//采用 Do - While 遍历所有进程
do
{
printf("\n-----------------------------------------------------");
printf("\n PROCESS NAME: = %s", pe32.szExeFile);
//cout << endl << pe32.szExeFile << endl;
printf("\n process ID = 0x%08X", pe32.th32ProcessID);
//遍历获取下一个进程
} while(Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
return TRUE;
}
void main()
{
GetProcessList();
}