当前位置:C++技术网 > 资讯 > 获取系统中所有进程的句柄

获取系统中所有进程的句柄

更新时间:2015-06-24 10:55:10浏览次数:1+次

所需头文件#include "Psapi.h"
需要导入Psapi.lib文件,使用预处理指令导入#pragma comment(lib,"Psapi.lib")

代码示例:

#include "Psapi.h"
#pragma comment(lib,"Psapi.lib")
void EmunSystemAllProcessID()
{
    DWORD processArray[1024]={0};
    DWORD dwReturnByte = 0;
    if(EnumProcesses(processArray,1024,&dwReturnByte))
    {
        DWORD index=0;
        DWORD* processHandle= new DWORD[dwReturnByte];
        while(index<dwReturnByte)
        {
            //循环遍历所有ID,得到句柄。hProcess为当前ID对应的句柄
            HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |PROCESS_VM_READ,FALSE, processArray[index] );
            processHandle[index]=(DWORD)hProcess;
            index++;
        }
    }
}

批量枚举进程EnumProcesses的说明,请参考《使用EnumProcesses枚举系统所有进程ID