该函数可用于获得指定进程名的进程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);
}