自己動手寫屏保
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下便可。然后你就可以在桌面-->“顯示屬性”-->“屏幕保護程序”去選取,并進行其它相關的操作(設置,預覽等)了.