进程线程 --获得制定进程中的所有模块信息--

    HANDLE   pProcessHandle    =    NULL;   
    pProcessHandle   
=    theApp.g_pi.hProcess; // GetCurrentProcess();   
    HMODULE   hInstLib    =    LoadLibrary(   _T( " PSAPI.DLL " ))   ;   

    
if    (pProcessHandle    !=    NULL && hInstLib != NULL)     
    
{   
        HMODULE   pLoadedModules[
4096];   
        DWORD   nLoadedBytes   
=   0;   
        
//   Get   array   of   loaded   modules   
        BOOL   (WINAPI   *lpfEnumProcessModules)(   HANDLE,   HMODULE   *,   
            DWORD,   LPDWORD   );   
        DWORD   (WINAPI   
*lpfGetModuleFileNameEx)(   HANDLE,   HMODULE,   
            LPTSTR,   DWORD   );   
        lpfEnumProcessModules   
=   (BOOL(WINAPI   *)(HANDLE,   HMODULE   *,   
            DWORD,   LPDWORD))   GetProcAddress(   hInstLib,   
            
"EnumProcessModules"   )   ;   
#ifdef   _UNICODE   
        lpfGetModuleFileNameEx   
=(DWORD   (WINAPI   *)(HANDLE,   HMODULE,   
            LPTSTR,   DWORD   ))   GetProcAddress(   hInstLib,   
            
"GetModuleFileNameExW"   )   ;   
#else   
        lpfGetModuleFileNameEx   
=(DWORD   (WINAPI   *)(HANDLE,   HMODULE,   
            LPTSTR,   DWORD   ))   GetProcAddress(   hInstLib,   
            
"GetModuleFileNameExA"   )   ;   
#endif   

        
if   (lpfEnumProcessModules(pProcessHandle,   
            pLoadedModules,   
            (DWORD)
sizeof(pLoadedModules),   
            
&nLoadedBytes))   {   
                
//   Compute   effective   number   of   modules   
                int   nNumberOfModules   =   nLoadedBytes/sizeof(HMODULE);   
                
//   Loop   on   all   modules   
                for   (int   i=0;   i<nNumberOfModules;   i++)   {   
                    
//   Fetch   module   file   name   
                    TCHAR   pFileName[_MAX_PATH];   
                    pFileName[
0]=0;   
                    CString   cleanFileName;   
                    
if   (lpfGetModuleFileNameEx(pProcessHandle,   
                        pLoadedModules[i],   
                        pFileName,   
                        _MAX_PATH)   
>   0)     
                    
{   
                        
if(_tcslen(pFileName)>0&&_tcslen(pFileName)<sizeof(pFileName)/sizeof(pFileName[0]))   
                        
{   
                            
////m_clModules.AddString(pFileName);   
                            //CDLLVersion   dll_ver(pFileName);   
                            
//LVITEM   lvI;   
                            
//lvI.mask   =   LVIF_TEXT   ;     
                            
//lvI.state   =   0;     
                            
//lvI.stateMask   =   0;     
                            
//lvI.iItem   =   i;   
                            
//lvI.iSubItem   =   0;   
                            
//lvI.pszText   =   pFileName;   
                            
//ListView_InsertItem(hwndListView,   &lvI);   
                            
//m_dqFileList.push_back(pFileName);   


                            
//LV_ITEM   lv_sub;   
                            
//memset(&lv_sub,0,sizeof(LV_ITEM));   
                            
//lv_sub.mask   =   LVIF_TEXT   ;     
                            
//lv_sub.state   =   0;     
                            
//lv_sub.stateMask   =   0;     
                            
//lv_sub.iItem   =   i;   
                            
//lv_sub.iSubItem   =   1;   
                            
//lv_sub.pszText   =   (LPTSTR)(LPCTSTR)dll_ver.GetFullVersion();   
                            
//ListView_SetItem(hwndListView,   &lv_sub);   
                            
//m_dqVersionList.push_back((LPCTSTR)dll_ver.GetFullVersion());   
                        }
   
                    }
   
                }
   
        }
   

        
//   Close   process   handle   
        CloseHandle(pProcessHandle);   

    }
     
    FreeLibrary(hInstLib);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值