两种方法都是参考网上的代码。
C++方法
#include<TlHelp32.h>
/******************************************************************************************
Function: GetProcessCount
Description: 获取指定进程数量
Input: szExeName:进程名称,带.exe后缀
Return: 进程数量
*******************************************************************************************/
int GetProcessCount(const TCHAR* szExeName)
{
int count = 0;
try
{
TCHAR sztarget[MAX_PATH];
lstrcpy(sztarget, szExeName);
CharLowerBuff(sztarget, MAX_PATH);
PROCESSENTRY32 my;
HANDLE l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (((int)l) != -1)
{
my.dwSize = sizeof(my);
if (Process32First(l, &my))
{
do
{
CharLowerBuff(my.szExeFile, MAX_PATH);
if (lstrcmp(sztarget, my.szExeFile) == 0)
{
count++;
}
} while (Process32Next(l, &my));
}
CloseHandle(l);
}
}
catch (std::exception e)
{
}
return count;
}
Qt方法
#include<QProcess>
//processName 进程名称 包含后缀.exe
bool IsProcessExist(QString processName)
{
QProcess process;
process.start("tasklist");
process.waitForFinished();
QString str = process.readAllStandardOutput();
if(str.contains(processName))
return true;
else
return false;
}