c⼀c++ 如何测试(判断)某一进程是否在运行??急求!!!

2025-03-10 03:54:40
推荐回答(2个)
回答1:

#include "tlhelp32.h"

int GetProcessCount(const TCHAR* szExeName)
{
TCHAR sztarget[MAX_PATH];
lstrcpy(sztarget, szExeName);
CharLowerBuff(sztarget, MAX_PATH);

int count = 0;
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);
}

return count;
}

输入进程名: szExeName
返回值: 进程运行数, 0 没运行

vc 6.0

回答2:

有很多方法,比较快的方法是你要知道该进程是否有一个命名的内核对象,如果有的话你就可以通过查找这个内核对象是否存在来判断。

效率比较低的方法就是枚举系统进程。

根据自己的具体情况想象撒。枚举系统进程效率确实很低,呵呵。

还有就是这个"某一进程”你了解吗?是你自己的还是别人的?呵呵。。
要不然就只有枚举啦。。EnumProcess

听说FindWindow可以,不知道是不是真的,我没试过哟。