C/C++判断进程是否存在
#include <windows.h> #include <tlhelp32.h> //进程快照函数头文件 #include <stdio.h>bool getProcess(const char *procressName) //此函数进程名不区分大小写
{
char pName[MAX_PATH]; //和PROCESSENTRY32结构体中的szExeFile字符数组保持一致,便于比较
strcpy(pName,procressName); //拷贝数组
CharLowerBuff(pName,MAX_PATH); //将名称转换为小写
PROCESSENTRY32 currentProcess; //存放快照进程信息的一个结构体
currentProcess.dwSize = sizeof(currentProcess); //在使用这个结构之前,先设置它的大小
HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//给系统内的所有进程拍一个快照<span style="color: #0000ff;">if</span> (hProcess ==<span style="color: #000000;"> INVALID_HANDLE_VALUE) { printf(</span><span style="color: #800000;">"</span><span style="color: #800000;">CreateToolhelp32Snapshot()调用失败!\n</span><span style="color: #800000;">"</span><span style="color: #000000;">); </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">bool</span> bMore=Process32First(hProcess,&currentProcess); <span style="color: #008000;">//</span><span style="color: #008000;">获取第一个进程信息</span> <span style="color: #0000ff;">while</span><span style="color: #000000;">(bMore) { CharLowerBuff(currentProcess.szExeFile,MAX_PATH); </span><span style="color: #008000;">//</span><span style="color: #008000;">将进程名转换为小写</span> <span style="color: #0000ff;">if</span> (strcmp(currentProcess.szExeFile,pName)==<span style="color: #800080;">0</span>) <span style="color: #008000;">//</span><span style="color: #008000;">比较是否存在此进程</span>
{
CloseHandle(hProcess); //清除hProcess句柄
return true;
}
bMore=Process32Next(hProcess,¤tProcess); //遍历下一个
}CloseHandle(hProcess); </span><span style="color: #008000;">//</span><span style="color: #008000;">清除hProcess句柄</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;
}
int main()
{</span><span style="color: #0000ff;">if</span> (getProcess(<span style="color: #800000;">"</span><span style="color: #800000;">qq.exe</span><span style="color: #800000;">"</span><span style="color: #000000;">)) { printf(</span><span style="color: #800000;">"</span><span style="color: #800000;">存在\n</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { printf(</span><span style="color: #800000;">"</span><span style="color: #800000;">不存在\n</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">0</span><span style="color: #000000;">;
}