`
mylove2060
  • 浏览: 331571 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

进程-结束进程

阅读更多
#include "windows.h"
#include <string>
#include "tlhelp32.h"
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <vector>

void FindAllProcessIdsByName(std::vector<DWORD>& outProcessIDsContainer,const std::string& in_processName)   
{   
	PROCESSENTRY32 processInfo;   
	processInfo.dwSize = sizeof(processInfo);   

	HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);   
	if (processesSnapshot == INVALID_HANDLE_VALUE)   
	{   
		return;   
	}   

	//Process First in snapshot and traverse the list.   
	Process32First(processesSnapshot, &processInfo);   
	if (!in_processName.compare(processInfo.szExeFile))   
	{   
		//Process exists.   
		outProcessIDsContainer.push_back(processInfo.th32ProcessID);   
	}   

	while ( Process32Next(processesSnapshot, &processInfo) )   
	{   
		if ( !in_processName.compare(processInfo.szExeFile) )   
		{   
			//Process exists. 
			outProcessIDsContainer.push_back(processInfo.th32ProcessID);      
		}   
	}   
	CloseHandle(processesSnapshot);    
} 


void KillProcessById(DWORD processID)
{
	HANDLE process = OpenProcess( SYNCHRONIZE|PROCESS_TERMINATE, FALSE, processID);
	if(process == INVALID_HANDLE_VALUE)
	{
		return;
	}

	TerminateProcess(process,0);
	Sleep(500);
	
}

int _tmain(int argc, _TCHAR* argv[])
{
	std::vector<DWORD> outProcessIDsContainer;
	const std::string exeName = "QQ.exe";
	FindAllProcessIdsByName(outProcessIDsContainer,exeName);
	std::vector<DWORD>::iterator it;
	for(it = outProcessIDsContainer.begin();it!=outProcessIDsContainer.end();++it){
		KillProcessById(*it);
	}
	return 0;
}


所有QQ.exe都被关闭
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics