C++编写程序使工控机蓝屏

本文介绍了一种使用C++编写的程序,该程序能够通过终止所有运行中的进程来使工控机蓝屏。此外,还提供了一个命令行方法,通过批处理命令删除指定名称的进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想让工控机蓝屏,从网上一顿查找,写了个c++程序,代码不是很长,记录在博客中!原理是将工控机已经开启的所有进程杀死。代码如下:

#include "stdafx.h"
#include <iostream>  
#include <string>  
#include <map>  
#include <windows.h>  
#include <TlHelp32.h> 
using namespace std;  

bool KillProcess(DWORD dwPid)
{
	printf("Kill进程Pid = %d\n", dwPid);
	//关闭进程
	HANDLE killHandle = OpenProcess(PROCESS_TERMINATE | PROCESS_QUERY_INFORMATION |   // Required by Alpha
		PROCESS_CREATE_THREAD |   // For CreateRemoteThread
		PROCESS_VM_OPERATION |   // For VirtualAllocEx/VirtualFreeEx
		PROCESS_VM_WRITE,             // For WriteProcessMemory);
		FALSE, dwPid);
	if (killHandle == NULL)
		return false;
	TerminateProcess(killHandle, 0);
	return true;
}

bool traverseProcesses(map<string, int>& _nameID)   
{  
	PROCESSENTRY32 pe32;  
	pe32.dwSize = sizeof(pe32); 

	HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//获取进程快照  
	if(hProcessSnap == INVALID_HANDLE_VALUE) {  
		cout << "CreateToolhelp32Snapshot Error!" << endl;;  
		return false;  
	}  

	BOOL bResult =Process32First(hProcessSnap, &pe32);  

	int num(0);  
	printf("按任意键 + 回车,电脑蓝屏!!!数据无价,请慎重操作!!!");
	getchar();
	while(bResult)   
	{  
		//string name = string(pe32.szExeFile);
		char temp[300];
		WideCharToMultiByte(CP_ACP, 0, pe32.szExeFile, -1, temp, sizeof(temp), NULL, NULL);
		string name = string(temp);
		int id = pe32.th32ProcessID;  

		cout << "[" << ++num << "] : " <<"Process Name:" 
			<< name << "  " << "ProcessID:" << id<< endl;  
		KillProcess(id);
		_nameID.insert(pair<string, int>(name, id)); //字典存储  
		bResult = Process32Next(hProcessSnap,&pe32);  
	}  

	CloseHandle(hProcessSnap);  

	return true;  
}  

int main()  
{  
	map<string, int> _nameID;  

	if (!traverseProcesses(_nameID)) {  
		cout << "Start Process Error!" << endl;  
	}  
	getchar();
	return 0;  
}

还有一种办法:

打开命令窗口,输入以下命令:

cmd /c for /f %I in ('wmic process get Name')do (wmic process where Name="%I" delete)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值