C/C++结束系统进程

C/C++结束系统进程

起因:ZZ室友最近沉迷吃鸡,没日没夜的和他的小伙伴开黑,严重影响到了寝室静谧,美好,热爱“学习”的氛围!突发奇想,给他电脑发个程序,当吃鸡吃到一半的时候,自动结束吃鸡进程,岂不美哉,哈哈,纯属说笑,并不会真的搞事情,开机自动运行没有加上,但是这个需求在脑海中形成想实现,正好巩固一下win32编程,废话不多,上代码!

#include"stdafx.h"
#include <stdio.h>  
#include <windows.h>  
#include <TlHelp32.h>  
#include <stdlib.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )	//隐藏运行的控制台窗口
  
int Kill_Pro(TCHAR Kill_Name[])		//功能函数。参数是进程名
{
	while(1){		//死循环为了一直获取当前系统正在运行的进程
    // 为进程的所有线程拍个快照  
    HANDLE hSnapshort = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  
    if( hSnapshort==INVALID_HANDLE_VALUE )  
    {  
        printf("CreateToolhelp32Snapshot调用失败!\n");  
        return -1;  
    }  
  
    // 获得线程列表  
    PROCESSENTRY32 stcProcessInfo;  
    stcProcessInfo.dwSize = sizeof(stcProcessInfo);  
    BOOL  bRet = Process32First(hSnapshort, &stcProcessInfo);  
    while (bRet)  
    {  
		if(strcmp(stcProcessInfo.szExeFile,Kill_Name)==0)
		{	
			Sleep(2000);		//等待时间
            HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE,FALSE,stcProcessInfo.th32ProcessID);	//获取进程句柄
            ::TerminateProcess(hProcess,0);    //结束进程
            CloseHandle(hProcess);		
		}
        bRet = Process32Next(hSnapshort, &stcProcessInfo);  
    }  
  
    CloseHandle(hSnapshort);  

	}
	return 0;
}

int main()   //主函数
{  
	Kill_Pro("editplus.exe");
    return 0;  
}
提醒:宿舍和谐还是很重要的,切勿伤了和气!

猜你喜欢

转载自blog.csdn.net/yan_star/article/details/79769818