工控编程吧

标题: 上位机MFC如何枚举系统当前进程 [打印本页]

作者: qq263946146    时间: 2019-8-16 11:12
标题: 上位机MFC如何枚举系统当前进程
我们可以结合两个函数Process32First,Process32Next来遍历当前打开 的全部进程
  1. void CDemoDlg::OnTest()
  2. {
  3.         CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
  4.         pList->DeleteAllItems();
  5.         pList->SetRedraw(FALSE);

  6.         //获得当前进程的快照
  7.         HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  8.         if ((HANDLE)-1 == hSnapshot)
  9.         {
  10.                 return;
  11.         }

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

  15.         int n = 0;

  16.         //获得快照中第一个进程
  17.         BOOL bResult = Process32First(hSnapshot, &ProcessInfo);
  18.         if (!bResult)
  19.         {
  20.                 return;
  21.         }

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

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

  32.                 n++;
  33.         }

  34.         //关闭快照
  35.         CloseHandle(hSnapshot);

  36.         pList->SetRedraw(TRUE);
  37. }
复制代码
IDC_LIST为我们自己添加的列表控件ID.







欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4