c++写一个循环来查找指定进程 不知道该怎么写?求代码 网上找了不少资料单老是编译出错 求大神指点
用CreateToolhelp32Snapshot
参考:
http://blog.csdn.net/zhongbin104/article/details/7867309
BOOL FindProcessByName(LPCTSTR szFileName, PROCESSENTRY32& pe)
{
// 采用进程快照枚举进程的方法查找指定名称进程
HANDLE hProcesses;
PROCESSENTRY32 lpe =
{
sizeof(PROCESSENTRY32)
};
CString strFileName(szFileName);
strFileName.MakeLower();
// 创建进程快照
hProcesses = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcesses == INVALID_HANDLE_VALUE)
return FALSE;
// 获取第一个进程实例
BOOL isExist = ::Process32First(hProcesses, &lpe);
BOOL isRunning = FALSE;
CString strName;
while (isExist)
{
strName = lpe.szExeFile;
strName.MakeLower();
if (-1 != strFileName.Find(strName))
{
isRunning = TRUE;
break;
}
// 遍历下一个进程实例
isExist = ::Process32Next(hProcesses, &lpe);
}
if (isRunning)
{
memcpy(&pe, &lpe, sizeof(PROCESSENTRY32));
}
CloseHandle(hProcesses);
return isRunning;
}