永发信息网

C++ 如何获得当前电脑里运行的所有进程ID?并关闭指定的进程?

答案:2  悬赏:50  手机版
解决时间 2021-03-01 20:49
C++ 如何获得当前电脑里运行的所有进程ID?并关闭指定的进程?
最佳答案
HANDLE GetProcessHandle(int nID)
{
return OpenProcess(PROCESS_ALL_ACCESS, FALSE, nID);
}

HANDLE GetProcessHandle(LPCTSTR pName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
BOOL fOk;
for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)) {
if (!_tcscmp(pe.szExeFile, pName)) {
CloseHandle(hSnapshot);
return GetProcessHandle(pe.th32ProcessID);
}
}
return NULL;
}

关闭进程
int killpro(CString a)//CString a里面就是进程名字。
{
PROCESSENTRY32 pe32;
pe32.dwSize =sizeof(pe32);
HANDLE hpro=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hpro==INVALID_HANDLE_VALUE)
{
return 0;
}
BOOL nowrun=Process32First(hpro,&pe32);
while(nowrun)
{
if(pe32.szExeFile ==a)
{
DWORD proid=pe32.th32ProcessID;
HANDLE hprocess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,proid);
if(hprocess!=NULL)
{
::TerminateProcess(hprocess,0);
::CloseHandle(hprocess);
}
}
nowrun=::Process32Next(hpro,&pe32);
}
}
全部回答
楼下正解 只不过TerminateProcess不需要再First Next 了吧~~ 直接给点空间保存着信息算了~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的父母体毛不多,但为什么我的体毛旺盛?
荣威车胎螺丝用多大的套管
王记夹肉馍(兴华街店)我想知道这个在什么地方
宏观经济的(  ),是宏观调控的依据。A.景
编写四个程序,分别用四种方法引用数组元素,输
南昌最高的建筑有多少层??叫什么名字、、?
中国有多少人叫徐美莹
季花鱼喜欢吃什么,
夫妻共同遗嘱存在部分失效吗
中国南方电网塘立收费点我想知道这个在什么地
一个完整的电信网由()组成。A.发信终端、信
问一下 藏式小金刚怕温差嘛 温差 差距40多度
辛赢汽车配件大全我想知道这个在什么地方
怀孕之后,变得很懒,感觉变丑了,老公说我变
怎样解决光盘往电脑里复制mp3格式的文件时出
推荐资讯
佳宇机械地址有知道的么?有点事想过去
开会讲话紧张怎么办
如何在银行官网上查询余额
鸿森大酒店我想知道这个在什么地方
高血脂能喝酸奶吗
长20厘米宽15厘米的是什么脸型
云峰翡翠唐山专卖店地址有知道的么?有点事想
三国大时代攻略八卦阵怎么出去?
金石轩瓷砖这个地址在什么地方,我要处理点事
电视机看影碟机没事看闭路呼啦呼啦闪是怎么回
高考体检时内衣厚薄对胸透结果有影响吗能不能
重庆红岩革命纪念馆这个地址在什么地方,我要
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?