一般大家都使用CreateToolhelp32Snapshot来获取当前系统所有进程的信息,而且网上的例子大都是告诉大家怎么获取系统所有进程信息。因今天遇到一个问题,需要获取指定进程ID的详细信息,因各种权限原因,只能使用CreateToolhelp32Snapshot 进行获取,现在相关代码贴一下,希望对你有帮助。
void GetProcessInfo(const DWORD cdwProcessID)
{
//参数合法性自行判定
.......
HANDLE hProcessShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,cdwProcessID);
//TH32CS_SNAPMODULE,这个参数也很重要,具体参考MSDN
//定义进程信息结构
MODULEENTRY32W me = {sizeof me}; //这个就是获取后的结果
me.th32ProcessID = dwProcessID;
Module32First(hProcessShot,&me);
//注意不要使用Process32First,否则会返回0x00000012,其实这个MSDN上面说的很清楚了,大家要仔细看MSDN:)
return 0;
}