C/C++ 判断进程是否存在
2023-02-18 16:44:47 时间
#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);//给系统内的所有进程拍一个快照
if (hProcess == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot()调用失败!\n");
return false;
}
bool bMore=Process32First(hProcess,¤tProcess); //获取第一个进程信息
while(bMore)
{
CharLowerBuff(currentProcess.szExeFile,MAX_PATH); //将进程名转换为小写
if (strcmp(currentProcess.szExeFile,pName)==0) //比较是否存在此进程
{
CloseHandle(hProcess); //清除hProcess句柄
return true;
}
bMore=Process32Next(hProcess,¤tProcess); //遍历下一个
}
CloseHandle(hProcess); //清除hProcess句柄
return false;
}
int main()
{
if (getProcess("qq.exe"))
{
printf("存在\n");
}
else
{
printf("不存在\n");
}
return 0;
}
相关文章
- [Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程
- [Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS
- [Linux] PHP程序员玩转Linux系列-nginx初学者引导
- [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx
- [Linux] PHP程序员玩转Linux系列-自动备份与SVN
- [Linux] PHP程序员玩转Linux系列-备份还原MySQL
- [Linux] PHP程序员玩转Linux系列-搭建代码开发环境
- [Linux] PHP程序员玩转Linux系列-lnmp环境的搭建
- [Linux] PHP程序员玩转Linux系列-怎么安装使用
- [Linux] 使用openssl实现RSA非对称加密
- [Linux] ubuntu安装配置vsftpd并锁定目录
- [PHP] java读取PHP接口数据
- [javaSE] java上传图片给PHP
- 在Visual Studio 中使用git系列文章目录
- 在Visual Studio 中使用git——同步到远程服务器-下(十二)
- 在Visual Studio 中使用git——同步到远程服务器-上(十一)
- 在Visual Studio 中使用git——标记(Tag)管理(十)
- 在Visual Studio 中使用git——分支管理-下(九)
- 在Visual Studio 中使用git——分支管理-上(八)
- 在Visual Studio 中使用git——浏览版本库(七)