您的位置:首页 > 编程语言 > C语言/C++

C++ 判断进程是否存在

2012-09-11 17:09 288 查看
在做服务应用程序时经常遇到一个服务器多个用户登录时会造成服务应用多个进程同时运行,然后影响系统的正常运行。要解决这个问题就需要在系统启动前判断该应用的进程是否运行,从进程上解决一个应用多个进程的问题。代码如下:

#include <windows.h>
#include "psapi.h"
#include"stdio.h"
#include <tlhelp32.h>
//
//判断进程是否存在
//2012-09-10
BOOL FindProcess()
{
int i=0;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
i+=0;
}
BOOL bMore = ::Process32First(hProcessSnap, &pe32);
while(bMore)
{
//printf(" 进程名称:%s \n", pe32.szExeFile);
if(stricmp("进程名",pe32.szExeFile)==0)
{
//printf("进程运行中");
i+=1;
}
bMore = ::Process32Next(hProcessSnap, &pe32);
}
if(i>1){           //大于1,排除自身
return true;
}else{
return false;
}
}


调用这个函数,如果存在则自动退出,如果不存在则正常运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: