CString strProName; //xx.exe 进程名称
if (strProName.IsEmpty())
{
AfxMessageBox(_T("进程名字不能为空!"));
return;
}
HANDLE SnapShot, ProcessHandle;
SHFILEINFO shSmall;
PROCESSENTRY32 ProcessInfo;
CString strExeFile; //进程名字
strProName.MakeLower(); //
SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(SnapShot != NULL)
{
ProcessInfo.dwSize = sizeof(ProcessInfo); // 设置ProcessInfo的大小
BOOL Status = Process32First(SnapShot, &ProcessInfo);
while(Status)
{
// 获取进程文件信息
SHGetFileInfo(ProcessInfo.szExeFile, 0, &shSmall, sizeof(shSmall), SHGFI_ICON|SHGFI_SMALLICON);
// 检测进程是否需要关闭
strExeFile = ProcessInfo.szExeFile;
strExeFile.MakeLower(); //小写
if(strProName.Compare(strExeFile) == 0)
{
// 获取进程句柄,强行关闭
ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessInfo.th32ProcessID);
TerminateProcess(ProcessHandle, 1);
//break;
}
// 获取下一个进程的信息
Status = Process32Next(SnapShot, &ProcessInfo);
}
}
强制关闭一个进程TerminateProcess
最新推荐文章于 2021-07-30 14:04:18 发布