获取windows系统所有运行进程

来源:互联网 发布:企业数据库软件 编辑:程序博客网 时间:2024/06/06 06:30
#include <TlHelp32.h> 
包含此头文件


bool traverseProcesses(map<string, int>& _nameID)   {      PROCESSENTRY32 pe32;      pe32.dwSize = sizeof(pe32); //MSDN中描述初始化dwsize,否则获取Process32First fail    HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//获取进程快照      if(hProcessSnap == INVALID_HANDLE_VALUE) {          cout << "CreateToolhelp32Snapshot Error!" << endl;;          return false;      }      BOOL bResult =Process32First(hProcessSnap, &pe32);  //获取第一个进程    int num(0);      while(bResult)       {          //string name = string(pe32.szExeFile);        char temp[300];
        //pe32.szExeFile为获取当前进程名,wideCharToMultiByte为字符类型转换

        WideCharToMultiByte(CP_ACP, 0, pe32.szExeFile, -1, temp, sizeof(temp), NULL, NULL);         string name = string(temp);         int id = pe32.th32ProcessID; //获取进程ID索引       cout << "[" << ++num << "] : " <<"Process Name:" << name << " " << "ProcessID:" <<         id<< endl; _nameID.insert(pair<string, int>(name, id)); //字典存储 bResult = Process32Next(hProcessSnap,&pe32); }       CloseHandle(hProcessSnap); return true;   }


//简单版本

#include <TlHelp32.h> PROCESSENTRY32 pe32;pe32.dwSize = sizeof(pe32);HANDLE hprocessHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);bool bResult = Process32First(hprocessHandle, &pe32);while(bResult){pe32.szExeFile;bResult = Process32Next(hprocessHandle,&pe32);  }CloseHandle(hprocessHandle);



 
原创粉丝点击