进程遍历的功能太常用了,记录一下:
#include<iostream>
#include<Windows.h>
#include<TlHelp32.h>
#include <atlstr.h>
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
std::ofstream ofile("C:\\lo.txt");
while(true)
{
HANDLE handle; //定义CreateToolhelp32Snapshot系统快照句柄
HANDLE handle1; //定义要结束进程句柄
handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//获得系统快照句柄
PROCESSENTRY32 *info; //定义PROCESSENTRY32结构字指
//PROCESSENTRY32 结构的 dwSize 成员设置成 sizeof(PROCESSENTRY32)
info=new PROCESSENTRY32;
info->dwSize=sizeof(PROCESSENTRY32);
//调用一次 Process32First 函数,从快照中获取进程列表
Process32First(handle,info);
//重复调用 Process32Next,直到函数返回 FALSE 为止
std::cout<<"start..."<<std::endl;
while(Process32Next(handle,info)!=FALSE)
{
info->szExeFile; //指向进程名字
CString str;
str.Format("id:%d, name:%s",info->th32ProcessID,info->szExeFile);
std::cout<<str.GetString()<<std::endl;
ofile<<str.GetString()<<std::endl;
}
CloseHandle(handle);
Sleep(500);
}
return 0;
}