CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
 pList->DeleteAllItems();
 pList->SetRedraw(FALSE);

 //获得当前进程的快照
 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 if ((HANDLE)-1 == hSnapshot)
 {
  return;
 }

 //进程信息
 PROCESSENTRY32 ProcessInfo;
 ProcessInfo.dwSize = sizeof(PROCESSENTRY32);

 int n = 0;

 //获得快照中第一个进程
 BOOL bResult = Process32First(hSnapshot, &ProcessInfo);
 if (!bResult)
 {
  return;
 }

 while (bResult)
 {
  //进程的可执行文件名
  pList->InsertItem(n, ProcessInfo.szExeFile);
  //进程的ID
  CString strText= _T("");
  strText.Format(_T("%08X"), ProcessInfo.th32ProcessID);
  pList->SetItemText(n, 1, strText);

  //获得快照中下一个进程
  bResult = Process32Next(hSnapshot, &ProcessInfo);

  n++;
 }

 //关闭快照
 CloseHandle(hSnapshot);

 pList->SetRedraw(TRUE);

posted on 2013-03-21 20:08  爱哎唉  阅读(415)  评论(0)    收藏  举报