自己動手寫屏保
2024-07-21 02:16:18
供稿:網友
 
屏保程序非常簡單,它只是一個擴展名為“.scr”,全屏運行,并符合一定規則的應用程序,我們可以用任何語言來進行開發。
屏保程序放置在系統的system32目錄下面,被系統自動調用執行。當系統執行屏保程序時,它會要求帶上一個不同的命令參數,以實現不同的功能,如正常運行,預覽,設置等。我們只要在程序中為不同參數實現不同的功能,我們的程序就可以被系統正常地調用了。以下列出全部的命令參數及其意義: 
命令行參數 意義詳解 
/s 正常運行屏保程序(到時間系統自動調用), 一般要求為接收到鍵盤事件時退出,屏蔽鼠標事件及其顯示 
/a 允許在用戶結束屏保運行時,顯示一個密碼輸入對話框(win98需要自已實現對話框,win2000及以后可自動返回鎖定時的登錄對話框,此參數可以不必使用) 
/c 在屏保選取配置時,顯示本屏保程序的參數設置對話框 
/p 在屏保選取配置時,預覽屏保程序,一般要求為可接收鍵盤或鼠標事件后返返 
在c#中我們可以這樣實現:
using system;
using system.collections;
using system.componentmodel;
using system.drawing;
using system.windows.forms;
public class myscreensaver : system.windows.forms.form
{
 public static void main(string arg)
 {
 application.run(new myscreensaver(arg)); //把參數傳到form中去
 }
 public myscreensaver(string arg)
 {
 //實現全屏顯示
 this.width = screen.primaryscreen.bounds.width; 
 this.height = screen.primaryscreen.bounds.height;
 this.left = 0;
 this.top = 0;
 switch(arg.tolower())
 {
 case "/s":
 /*...正常運行實現代碼*/
 break;
 case "/a":
 /*...密碼對話框實現代碼*/
 break;
 case "/c":
 /*...參數設置實現代碼*/
 break;
 case "/p":
 /*...預覽實現代碼*/
 break;
 default:
 application.exit(); //其它情況退出
 break;
 }
 /*...其它代碼*/
 }
 /*...它代碼*/
}
程序成后,把生成的exe擴展名改變“.scr”,再復制到system32下便可。然后你就可以在桌面-->“顯示屬性”-->“屏幕保護程序”去選取,并進行其它相關的操作(設置,預覽等)了.