该函数可用于获得指定进程名的进程ID列表
void CDSUMDlg::GetProcessIDList(CString sProcessName, CArray<int, int>& arrayProcessID)
{
HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32 = {0};
HANDLE hParentProcess = NULL;
DWORD dwParentProcessID = 0;
CString sFileName;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
return;
pe32.dwSize = sizeof(pe32);
if (!Process32First(hProcessSnap, &pe32))
{
CloseHandle(hProcessSnap);
return;
}
do
{
if (sProcessName.CompareNoCase(pe32.szExeFile) == 0)
arrayProcessID.Add(pe32.th32ProcessID);
}while (Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
}
本文介绍了一种通过指定进程名称来获取所有匹配进程ID的方法。使用了CreateToolhelp32Snapshot和Process32First等Windows API函数实现遍历当前系统中所有进程并筛选出特定进程。
8989

被折叠的 条评论
为什么被折叠?



