qq544191828
qq544191828
采纳率0%
2015-03-10 02:52 阅读 1.8k

求教关于枚举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 devmiao 2015-03-10 02:56

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

    点赞 2 评论 复制链接分享
  • VisualEleven Eleven 2015-03-10 08:12

    论坛里不是已经问过了吗?又在这里问一遍?

    点赞 1 评论 复制链接分享

相关推荐