qq544191828 2015-03-10 02:52 采纳率: 0%
浏览 1784

求教关于枚举Win32进程信息

写了一个枚举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);
    } 
  • 写回答

2条回答 默认 最新

  • devmiao 2015-03-10 02:56
    关注

    因为这些程序是服务,不是当前桌面会话启动的。

    评论

报告相同问题?

悬赏问题

  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?