函数说明:
CreateToolhelp32Snapshot 创建系统快照
Process32First 查找第一个进程
Process32Next 查找下一个进程
OpenProcess 打开进程
GetExitCodeProcess 取得进程终止状态
TerminateProcess 终止进程
CloseHandle 关闭对象句柄
==========================================
bool KillProcess(char *ch) //ch是进程名字符串
{
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
{
int i=0, test=0;
while(lppe.szExeFile==ch)
{
if(lppe.szExeFile==0)
{
test=1;
break;
}
i++;
}
if (test==1)
{
DWORD xCode;
HANDLE hProc;
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;
}