#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;
}
原文地址:http://www.cnblogs.com/duyy/p/3699863.html