写了一个枚举win32进程信息的代码,只有一个问题,取进程所在路径pes.szExePath的时候,有些给出了完整的路径,有些却只有进程名,不知道问题出在哪,求高手回复
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 procList;
procList.dwSize=sizeof(PROCESSENTRY32);
BOOL bRet=Process32First(hSnapshot,&procList);
m_ProcessCount=0;//进程数
CString ProName[200];
CString id,threads,threadid;
exist=false;
m_ProcessList.DeleteAllItems();
MODULEENTRY32 pes;
HANDLE hfilename=NULL;
pes.dwSize = sizeof(MODULEENTRY32);
while(bRet)
{
hfilename = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE , procList.th32ProcessID);
Module32First(hfilename,&pes);
m_ProcessList.InsertItem(m_ProcessCount,pes.szExePath);//映像名称(路径)
id.Format(_T("%d"),procList.th32ProcessID);//进程ID
m_ProcessList.SetItemText(m_ProcessCount,1,id);
threads.Format(_T("%d"),procList.cntThreads);//线程数
m_ProcessList.SetItemText(m_ProcessCount,2,threads);
/*threadid.Format(_T("%d"),pes.th32ModuleID);//模块标识
m_ProcessList.SetItemText(m_ProcessCount,3,threadid);*/
m_ProcessCount++;
m_ProcessNum.Format("当前进程数: %d",m_ProcessCount);
ProName[m_ProcessCount]=(CString)procList.szExeFile;
bRet=Process32Next(hSnapshot,&procList);
}