工控编程吧
标题:
上位机MFC如何枚举系统当前进程
[打印本页]
作者:
qq263946146
时间:
2019-8-16 11:12
标题:
上位机MFC如何枚举系统当前进程
我们可以结合两个函数Process32First,Process32Next来遍历当前打开 的全部进程
void CDemoDlg::OnTest()
{
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);
}
复制代码
IDC_LIST为我们自己添加的列表控件ID.
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4