黑客帝國_螢幕保護程式
阿新 • • 發佈:2019-01-26
Hacker empire
宣告:本程式資源純屬個人創作,文尾提供程式下載地址。效果圖:
程式思路說明:
1:本原始碼是在VS2013中編寫,在其他版本編譯器應該也可以。
2:在VS2013下新建Win32專案,將視窗設定為全屏,並隱藏滑鼠……,詳見下面main.cpp#include <iostream> #include <vector> #include <string> #include <windows.h> #include "Server.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { static TCHAR * szAppName = L"Hacker empire"; HWND hWnd; MSG msg; WNDCLASS wndClass; wndClass.style = CS_HREDRAW | CS_VREDRAW;//視窗樣式 wndClass.lpfnWndProc = wndProc;//視窗回撥函式 wndClass.cbClsExtra = 0;//視窗擴充套件 wndClass.cbWndExtra = 0;//視窗例項擴充套件 wndClass.hInstance = hInstance;//視窗例項控制代碼 wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//視窗最小化圖示 wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);//滑鼠游標 wndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);//視窗背景色 wndClass.lpszMenuName = NULL;//視窗主選單 wndClass.lpszClassName = szAppName;//視窗類名 if (!RegisterClass(&wndClass)) { MessageBoxW(NULL, L"視窗註冊失敗!", szAppName, MB_OK | MB_ICONERROR); return 0; } hWnd = CreateWindow(szAppName, NULL, WS_DLGFRAME | WS_POPUP, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), NULL, NULL, hInstance, NULL); ShowWindow(hWnd, SW_SHOWMAXIMIZED); UpdateWindow(hWnd); ShowCursor(FALSE); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } ShowCursor(TRUE); return 0; }
3:根據螢幕大小以及程式中設定的字型大小計算將顯示的列數和每一列的字元個數,使用vector儲存每一列,每一列的字元資訊、起點(x,y)、顯示長度、下落速度等資訊使用一個結構體包裝。 4:在訊息回撥函式裡面,初始化窗口裡面設定好DC,字型,點陣圖,以及生成隨機字元儲存在vector裡面。最後設定合適時間的定時器。 5:在定時器訊息裡面顯示每一列、logo資訊等,顯示完成後重新整理螢幕。 6:在程式結束的時候需關閉定時器,釋放記憶體。 7:最後將編譯好的可執行的exe檔案字尾直接改成 .scr,然後拷貝到C:\Windows\System32目錄下,然後開啟設定屏保,在選項框裡面就可以看見自己的螢幕保護程式,設定成自己的就大功告成。
動態效果圖:
解釋:由於錄屏軟體最高幀數限制,此影象略顯抖動。