天天看点

C++病毒——鼠标乱飞

这是一个很简单的病毒,对计算机不会造成任何伤害,可放心使用。

(后文附解决方法)

在此有两种代码可以达到同样的效果。话不多说,上代码——

1:

#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int x=GetSystemMetrics(SM_CXSCREEN);
	int y=GetSystemMetrics(SM_CYSCREEN);
	srand(time(0));
	while(1)cout<<"Oh!!!"<<endl&&SetCursorPos(rand()%x,rand()%y);
}
           

2:

#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
int main()
{
	int x,y;
	while(1) 
	{
		x=rand()%332+300;
		y=rand()%228+300;
		SetCursorPos(x,y);
	}
	getchar();
	return 0 ;
}
           

(第二种或许可以更简略些)

除此之外,你还可以在病毒代码部分前新增其他效果。比如说——

隐藏窗口:

HWND hwnd;
hwnd=FindWindow("ConsoleWindowClass",NULL);
if(hwnd) ShowWindow(hwnd,SW_HIDE);
           

窗口变红色:

system("color 40");
           

响起警报铃:

​Beep(500,2000);
Beep(825,1000);
           

六十秒后关机:

system("Shutdown -s -t 60");//数字可随意设置,代表秒数
           

……

在此,将前几种整合后形成加强版——

#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
    system("Shutdown -s -t 60");
    HWND hwnd;
    hwnd=FindWindow("ConsoleWindowClass",NULL);
    if(hwnd) ShowWindow(hwnd,SW_HIDE);
	int x=GetSystemMetrics(SM_CXSCREEN);
	int y=GetSystemMetrics(SM_CYSCREEN);
	srand(time(0));
	while(1)cout<<"Oh!!!"<<endl&&SetCursorPos(rand()%x,rand()%y);
}
           

至于解决方法,我这里介绍两种吧。

最简单的就是Alt+F4,也就是关闭当前窗口,而如果你不小心转到其它窗口了,可以用Alt+Tab或者win+Tab切换回来。

第二种麻烦一点,通过快捷键Ctrl+Shift+Esc打开Windows任务管理器,然后使用↑↓键移动到病毒程序,接着Alt+E选中,最后回车键确认关闭。除此之外也有其他方法打开任务管理器。有时候第一种方法会派不上用场(比如说窗口被隐藏了)或无法正常使用(Windows7就经常出现按了却关不掉的情况),这时便得靠第二种了。

当然,还有最简单粗暴的方法那就是——关、机、重、启!重启后是不会自动运行的,不过这可就有点尴尬了……

创作不易,喜欢的就点个赞吧,有什么问题可以在下方评论或者私信我哦!

继续阅读