#include"stdafx.h"
#include <windows.h>
#include <TlHelp32.h>
#include <iostream>
using namespace std;
BOOL KillProcess(DWORD ProcessId)
{
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,ProcessId);
if(hProcess==NULL)
return FALSE;
if(!TerminateProcess(hProcess,0))
return FALSE;
return TRUE;
}
DWORD GetSpecifiedProcessId(const char *pszProcessName)
{
DWORD id=0;
//获得系统快照句柄 (通俗的讲, 就是得到当前的所有进程)
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0) ;
PROCESSENTRY32 pInfo; //用于保存进程信息的一个数据结构
pInfo.dwSize = sizeof(pInfo); //使用这个结构之前,先设置它的大小
//从快照中获取进程列表
Process32First(hSnapShot, &pInfo) ; //从第一个进程开始循环
do
{
//这里的 pszProcessName 为进程名称
if(strcmp(pInfo.szExeFile, pszProcessName) == 0)
{
id = pInfo.th32ProcessID ;
break ;
}
}while(Process32Next(hSnapShot, &pInfo) != FALSE);
CloseHandle(hSnapShot);
return id; //id 就是你要的进程PID 了..
}
int _tmain (int argc, LPTSTR argv[])
{
if(KillProcess( GetSpecifiedProcessId("QQProtect.exe")))
{
cout<<"成功"<<endl;
}else{
cout<<"失败"<<endl;
}
system("pause");
return 0;
}