C++實(shí)現(xiàn)假裝藍(lán)屏整蠱小程序
C++假裝藍(lán)屏
應(yīng)為工作的需要,有時(shí)候我們離開(kāi)時(shí)并不想讓別人看到我們電腦的內(nèi)容,所以做了個(gè)假裝藍(lán)屏的小程序
實(shí)現(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; } } }
藍(lán)屏素材
最后用VS制作一個(gè)透明的鼠標(biāo).cur,就可以假裝電腦藍(lán)屏
到此這篇關(guān)于C++實(shí)現(xiàn)假裝藍(lán)屏整蠱小程序的文章就介紹到這了,更多相關(guān)C++假裝藍(lán)屏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
win10環(huán)境下vscode Linux C++開(kāi)發(fā)代碼自動(dòng)提示配置(基于WSL)
這篇文章主要介紹了win10環(huán)境下vscode Linux C++開(kāi)發(fā)代碼自動(dòng)提示配置(基于WSL),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05C語(yǔ)言常見(jiàn)排序算法之交換排序(冒泡排序,快速排序)
這篇文章主要介紹了C語(yǔ)言常見(jiàn)排序算法之交換排序(冒泡排序,快速排序),冒泡排序即Bubble?Sort,類(lèi)似于水中冒泡,較大的數(shù)沉下去,較小的數(shù)慢慢冒起來(lái),假設(shè)從小到大,即為較大的數(shù)慢慢往后排,較小的數(shù)慢慢往前排2022-07-07C語(yǔ)言 結(jié)構(gòu)體數(shù)組詳解及示例代碼
本文主要介紹C語(yǔ)言 結(jié)構(gòu)體數(shù)組,這里整理了相關(guān)資料及簡(jiǎn)單示例代碼,以便大家學(xué)習(xí)參考,有興趣的小伙伴可以看下2016-08-08C/C++實(shí)現(xiàn)遍歷文件夾最全方法總結(jié)
這篇文章主要為大家介紹了C/C++實(shí)現(xiàn)遍歷文件夾功能的最全方法總結(jié),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-09-09C語(yǔ)言實(shí)現(xiàn)輸出1000以內(nèi)的所有完全數(shù)
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)輸出1000以內(nèi)的所有完全數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06C++實(shí)現(xiàn)ETW進(jìn)行進(jìn)程變動(dòng)監(jiān)控詳解
ETW提供了一種對(duì)用戶層應(yīng)用程序和內(nèi)核層驅(qū)動(dòng)創(chuàng)建的事件對(duì)象的跟蹤記錄機(jī)制。為開(kāi)發(fā)者提供了一套快速、可靠、通用的一系列事件跟蹤特性。本文將利用ETW進(jìn)行進(jìn)程變動(dòng)監(jiān)控,需要的可以參考一下2022-07-07深度解析三個(gè)常見(jiàn)的C語(yǔ)言內(nèi)存函數(shù)
這篇文章主要深度解析了三個(gè)常見(jiàn)的C語(yǔ)言內(nèi)存函數(shù)memcpy,memmove,memcmp,所以本文將對(duì)memcpy,memmove,memcmp 三個(gè)函數(shù)進(jìn)行詳解和模擬實(shí)現(xiàn),需要的朋友可以參考下2023-07-07