- 获取系统进程
- 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:也可以获取进程使用的堆、模块和线程的快照。