vc 关闭外部程序

举个例子,通过VC编程来关闭外部的程序或结束一个进程,如下:

//通过判断当前的进程名来结束指定的进程(即关闭指定的程序)
bool TerminateProcessByName(const CString strProcessName)
{
bool bResult = false; //函数返回值

HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hSnapshot == INVALID_HANDLE_VALUE)
{
bResult = false;
}

PROCESSENTRY32 ProcessInfo;
ProcessInfo.dwSize = sizeof(PROCESSENTRY32);

//获取第一个进程的信息
BOOL bStatus = Process32First(hSnapshot,&ProcessInfo);

while(bStatus)
{
//获取当前进程的进程名
CString strCurrentProcessName = ProcessInfo.szExeFile;

//判断是否找到了指定的文件
if (strProcessName.CompareNoCase(strCurrentProcessName) == 0)
{
//获取当前进程的句柄
HANDLE hCurrentProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessInfo.th32ProcessID);

if (hCurrentProcess == NULL)
{
bResult = false;
}

else
{
//结束当前的进程
TerminateProcess(hCurrentProcess,0);
bResult = true;
break;
}

}

else
{
//获取下一个进程的信息
bStatus = Process32Next(hSnapshot,&ProcessInfo);
}

}

return bResult;
}

这里用到的函数主要是:
CreateToolhelp32Snapshot PROCESSENTRY32、 Process32First、 OpenProcess、 TerminateProcess、 Process32Next。
注意:这里是通过判断进程名来结束指定的进程,有时候多个程序有相同的进程名,比如当打开多个IE浏览器时,这多个IE浏览器的进程名都是一样的,如果这时通过上面的方法来结束进程时,会同时关闭所有的IE浏览器(因为它们的进程名相同)。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值