原码如下:void CProcListDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
HINSTANCE hstn=NULL;
if(hstn!=NULL)
{
        return ;
}
    hstn=LoadLibrary("psapi.dll");
if (hstn==NULL) MessageBox("NULL",NULL,MB_OK);
    typedef BOOL (WINAPI *EnumProcesses1)(DWORD*,DWORD,DWORD*);
typedef BOOL (WINAPI *EnumProcessModules1)(HANDLE,HMODULE*,DWORD,LPDWORD);
typedef DWORD (WINAPI *GetModuleBaseName1)(HANDLE,HMODULE,LPTSTR,DWORD);  EnumProcesses1 EnumProcesses;
    EnumProcessModules1 EnumProcessModules;
    GetModuleBaseName1 GetModuleBaseName;    EnumProcesses=(EnumProcesses1)GetProcAddress(hstn,"EnumProcesses");
    EnumProcessModules=(EnumProcessModules1)GetProcAddress(hstn,"EnumProcessModules");
    GetModuleBaseName=(GetModuleBaseName1)GetProcAddress(hstn,"GetModuleBaseName");
    
DWORD proclist[1024],cdNeeded,procnum;
    HANDLE hProcess;
    HMODULE hMod;
    char procname[MAX_PATH]="UNKOWN";
    if (!EnumProcesses(proclist, sizeof(proclist), &cdNeeded))  return ;
    procnum = cdNeeded / sizeof(DWORD);
    m_list.ResetContent();
int a=0;
for(unsigned int i=0;i<procnum;i++)
{
          hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,false,proclist[i]);
  if (hProcess)
  {
               if (EnumProcessModules(hProcess,&hMod,sizeof(hMod),&cdNeeded))
   {
   a++;
                   GetModuleBaseName(hProcess,hMod,procname,sizeof(procname));
   m_list.AddString(procname);
   }
  }
}
itoa(a,procname,10);
MessageBox(procname,NULL,MB_OK);
}