您的位置:首页 > 其它

获取windows进程列表,并以字符串形式查询是否存在某一进程

2011-05-03 10:49 218 查看
需要的头文件:
#include <windows.h>
#include <Tlhelp32.h>

bool haveThisProcess(char *p)
{
WCHAR process[128];
mbstowcs(process, p, 128); //把char*转化为wchar_t*
PROCESSENTRY32 pe32;
// 在使用这个结构之前,先设置它的大小
pe32.dwSize = sizeof(pe32);
// 给系统内的所有进程拍一个快照
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
printf(" CreateToolhelp32Snapshot调用失败! /n");
//return;
}
// 遍历进程快照,轮流显示每个进程的信息
BOOL bMore = ::Process32First(hProcessSnap, &pe32);
while(bMore)
{
// wcout << pe32.szExeFile << endl;
// cout << pe32.th32ProcessID << endl;
if(0 == wcscmp(pe32.szExeFile, process))
{
::CloseHandle(hProcessSnap);
return true;
}
bMore = ::Process32Next(hProcessSnap, &pe32);
}
// 不要忘记清除掉snapshot对象
::CloseHandle(hProcessSnap);
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: