C++實現(xiàn)假裝藍屏整蠱小程序
C++假裝藍屏
應(yīng)為工作的需要,有時候我們離開時并不想讓別人看到我們電腦的內(nèi)容,所以做了個假裝藍屏的小程序
實現(xiàn)代碼
#include<Windows.h>
#include<atlimage.h>
#include"resource.h"
int ScreenWidth;
int ScreenHeight;
CImage copy;
HCURSOR hcur;
LRESULT CALLBACK Melter(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CREATE: {
//system("taskkill explorer.exe");
SetClassLong(hwnd, GCL_HCURSOR, (long)hcur);
ShowWindow(hwnd, SW_SHOW);
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 100, 100, SWP_NOMOVE | SWP_NOSIZE);
HDC hdc = GetDC(hwnd);
//MessageBox(0,"debug", "", 0);
copy.Save("D:\\11111.jpg");
::BitBlt(hdc, 0, 0, ScreenWidth, ScreenHeight, copy.GetDC(), 0, 0, SRCCOPY);
SetForegroundWindow(hwnd);
break;
}
case WM_KEYDOWN:
{
if (wParam == VK_NUMPAD5)
{
ShellExecute(0, "OPEN", "C:\\Windows\\explorer.exe", "", "D:\\", 0);
exit(0);
return 0;
}
}
break;
case WM_PAINT: {
MessageBox(0, "", "", 0);
ValidateRect(hwnd, 0);
break;
}
case WM_CLOSE: {
return 0;
}
case WM_DESTROY: {
return 0;
}
case WM_COMMAND: {
return 0;
}
}
return DefWindowProc(hwnd, Msg, wParam, lParam);
}
BOOL LoadImageFromResource(CImage*pImage, UINT nResID, LPCTSTR lpTyp)
{
if (pImage == NULL)
return false;
pImage->Destroy();
HMODULE mod=GetModuleHandle(NULL);
HRSRC hRsrc = ::FindResource(mod, MAKEINTRESOURCE(nResID), lpTyp);
if (hRsrc == NULL)return false;
HGLOBAL hImgData = ::LoadResource(mod, hRsrc);
if (hImgData == NULL)
{
::FreeResource(hImgData);
return false;
}
char* lpVoid =(char*)( ((int)::LockResource(hImgData)));
LPSTREAM pStream = NULL;
DWORD dwSize = ::SizeofResource(mod, hRsrc);
HGLOBAL hNew = ::GlobalAlloc(GHND, dwSize+14);
LPBYTE lpByte = (LPBYTE)::GlobalLock(hNew);
char t[14] = { 0x42 ,0x4D ,0x36 ,0xEC ,0x5E ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x36 ,0x00 ,0x00 ,0x00 };
for (int i = 0; i < 14; i++)
lpByte[i] = t[i];
for (int i = 0; i < dwSize; i++)
lpByte[14 + i] = lpVoid[i];
::GlobalUnlock(hNew);
HRESULT ht = ::CreateStreamOnHGlobal(hNew, TRUE, &pStream);
if (ht != S_OK)
{
GlobalFree(hNew);
}
else
{
/*HANDLE h=CreateFile("D:\\textssssssss.bmp", GENERIC_WRITE, NULL, NULL, CREATE_NEW, FILE_ATTRIBUTE_HIDDEN, 0);
DWORD dwWrite = 0;
WriteFile(h, t, 14, &dwWrite, NULL);
WriteFile(h, lpVoid, dwSize, &dwWrite, NULL);
CloseHandle(h);*/
pImage->Load(pStream);
GlobalFree(hNew);
if (pImage->IsNull())
{
::FreeResource(hImgData);
MessageBox(0, "失敗", "", 0);
return false;
}
}
::FreeResource(hImgData);
return true;
}
int WINAPI WinMain(HINSTANCE h1, HINSTANCE h2, LPSTR cmd, int show)
{
hcur = LoadCursor(h1, MAKEINTRESOURCE(IDC_CURSOR1));
bool k=LoadImageFromResource(©, IDB_BITMAP1, RT_BITMAP);
if (!k)
{
MessageBox(0, "失敗", "", 0);
return 0;
}
else
copy.Save("D:\\11111.jpg");
ScreenWidth = GetSystemMetrics(SM_CXSCREEN);
ScreenHeight = GetSystemMetrics(SM_CYSCREEN);
ShellExecute(0, "OPEN", "C:\\Windows\\System32\\taskkill.exe", "/im explorer.exe /f", "D:\\", 0);
Sleep(3000);
WNDCLASS wndclass = { 0,Melter,0,0,h1,0,LoadCursor(0,IDC_ARROW),0,0,"ScreenMelter" };
if (RegisterClass(&wndclass))
{
HWND hwnd = CreateWindowExA(WS_EX_TOPMOST, "ScreenMelter", 0, WS_POPUP, 0, 0, ScreenWidth, ScreenHeight, HWND_DESKTOP, 0, h1, 0);
if (hwnd)
{
MSG msg = { 0 };
while (1)
{
if (GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else break;
}
return msg.wParam;
}
}
}藍屏素材

最后用VS制作一個透明的鼠標(biāo).cur,就可以假裝電腦藍屏
到此這篇關(guān)于C++實現(xiàn)假裝藍屏整蠱小程序的文章就介紹到這了,更多相關(guān)C++假裝藍屏內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
win10環(huán)境下vscode Linux C++開發(fā)代碼自動提示配置(基于WSL)
這篇文章主要介紹了win10環(huán)境下vscode Linux C++開發(fā)代碼自動提示配置(基于WSL),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
C語言 結(jié)構(gòu)體數(shù)組詳解及示例代碼
本文主要介紹C語言 結(jié)構(gòu)體數(shù)組,這里整理了相關(guān)資料及簡單示例代碼,以便大家學(xué)習(xí)參考,有興趣的小伙伴可以看下2016-08-08
C語言實現(xiàn)輸出1000以內(nèi)的所有完全數(shù)
這篇文章主要介紹了C語言實現(xiàn)輸出1000以內(nèi)的所有完全數(shù),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
C++實現(xiàn)ETW進行進程變動監(jiān)控詳解
ETW提供了一種對用戶層應(yīng)用程序和內(nèi)核層驅(qū)動創(chuàng)建的事件對象的跟蹤記錄機制。為開發(fā)者提供了一套快速、可靠、通用的一系列事件跟蹤特性。本文將利用ETW進行進程變動監(jiān)控,需要的可以參考一下2022-07-07

