- 获取系统进程
- ToolHelp函数;
- CreateToolhelp32Snapshot函数获取当前系统内执行的进程拍快照(Snapshot),即获得进程列表;
- Process32First函数和Process32Next函数遍历列表;
- 快照头文件:#include<tlhelp32.h>
#include<Windows.h>
#include<tlhelp32.h>
#include<iostream>
using namespace std;
int main()
{
HANDLE lpSnapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (lpSnapshot == INVALID_HANDLE_VALUE)
{
cout << "获取进程函数CreateToolhelp32Snapshot调用失败!" << endl;
return -1;
}
PROCESSENTRY32 p32;
p32.dwSize = sizeof(p32);
BOOL pr = ::Process32First(lpSnapshot, &p32);
while (pr)
{
wcout << "进程id:"<< p32.th32ProcessID
<<" \t进程名称:" <<p32.szExeFile<< endl;
pr = ::Process32Next(lpSnapshot, &p32);
}
::CloseHandle(lpSnapshot);
return 0;
}
- 注意:在程序的实现过程中,#include<Windows.h>,#include<tlhelp32.h>头文件顺序,p32.szExeFile为WCHAR类型,用cout无法全部输出,可用wcout直接输出。
- CReateToolhelp32Snapshot:也可以获取进程使用的堆、模块和线程的快照。