1:通过进程名判断
判断进程是否存在,存在返回PID,返回1代表不存在
#include <tlhelp32.h> //头文件
#include<tchar.h>
TCHAR Process[] = _T("process.exe");//需要先定义
DWORD FindProcess(TCHAR Name[]) //调用时传入Process
{
DWORD ID = 1; //PID为0是系统的进程,不存在PID为1的进程
PROCESSENTRY32 pe;
pe.dwSize = sizeof(PROCESSENTRY32);
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (Process32First(hSnap, &pe))
{
do
{
if (lstrcmpi(Name, pe.szExeFile) == 0)//进程存在的条件
{
ID = pe.th32ProcessID;
break;
}
} while (Process32Next(hSnap, &pe));
}
CloseHandle(hSnap);
return ID;
}
2:通过PID判断
BOOL isExistProcess(DWORD process_id)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
for (BOOL ret = Process32First(hSnapshot, &pe); ret; ret = Process32Next(hSnapshot, &pe)) {
if (pe.th32ProcessID == process_id)
{
return TRUE;
}
}
CloseHandle(hSnapshot);
return FALSE;
}