函数说明:
CreateToolhelp32Snapshot 创建系统快照
Process32First 查找第一个进程
Process32Next 查找下一个进程
OpenProcess 打开进程
GetExitCodeProcess 取得进程终止状态
TerminateProcess 终止进程
CloseHandle 关闭对象句柄
//=========================================
bool KillProcess()
{
HANDLE hSnapshot;
PROCESSENTRY32 lppe;
//创建系统快照
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hSnapshot == NULL) return false;
//初始化 lppe 的大小
lppe.dwSize = sizeof(lppe);
//查找第一个进程
if (!Process32First(hSnapshot, &lppe)) return false;
do {
if (AnsiString(lppe.szExeFile).Trim().UpperCase()=="PROJECT1.EXE") {
DWORD xCode;
HANDLE hProc = OpenProcess(PROCESS_TERMINATE, false, lppe.th32ProcessID);
if (hProc && GetExitCodeProcess(hProc, &xCode)) {
TerminateProcess(hProc, xCode);
break;
}
}
} while (Process32Next(hSnapshot, &lppe)); //查找下一个进程
if (!CloseHandle(hSnapshot)) return false;
return true;
}