屏幕保護程序是以scr為擴展名的標准Windows可執行程序。屏幕保護程序不僅可以延長顯示器的使用壽命,還可以保護私人信息。本文向大家介紹一個用C# Builder編寫的一個動態文本及圖形的屏幕保護程序。
具體實現步驟 (1)在C# Builder下新建一個C#的Windows應用程序工程,這裡命名為screensaver。
啟動C# Builder,通過菜單File->New->C# Application
(2)界面的設計 先將窗體的BackColor屬性設置為Black、Size屬性設置為(800, 600)、 ControlBox、MaximizeBox、MinimizeBox、ShowInTaskbar屬性設置均為false、FormBorderStyle屬性設置為None, WindowStaus設為Maximized,StartPosition設置為CenterScreen。
再往窗體上添加Label控件、PictureBox控件、Timer控件各一個。將Label控件的Text屬性設置為“悠游在線歡迎您!”;將PictureBox控件的Name設置為picture1、Image設置為一個預知圖片;將Timer控件的Enabled 屬性設為true、Interval屬性設為5。
(3)程序的編碼
//加入以下私有成員變量
private int iSpeed = 2;
private int iDistance;
private int ixStart= 0;
private int iyStart= 0;
private int speed;
private int x1,y1;
private int width1,height1;
//雙擊Form,在其Load事件輸入下面的代碼:
speed=0;
System.Drawing.Rectangle ssWorkArea=System.Windows.Forms.Screen.GetWorkingArea(this);
//屏幕顯示區域
width1=ssWorkArea.Width; //屏幕寬度
height1=ssWorkArea.Height; //屏幕高度
//From的KeyDown,MouseDown,MouseMove事件中都輸入以下代碼:
Application.Exit();
//timer1的Tick事件輸入下面代碼:
//下面設置文本顯示框的位置坐標
label1.Location =new System.Drawing.Point(width1-iDistance,label1.Location.Y);
label1.Visible=true; //設置為可見
iDistance+=iSpeed;
if(label1.Location.X<=-(label1.Width))
{
iDistance=0;
if(label1.Location.Y==0)
label1.Location=new System.Drawing.Point(label1.Location.X,height1/2);
else if(label1.Location.Y==height1/2)
label1.Location=new System.Drawing.Point(label1.Location.X,height1-label1.Height);
else
label1.Location=new System.Drawing.Point(label1.Location.X,0);
}
//下面是計算圖片框移動坐標
speed++;
if(speed<=2*height1)
{
x1=System.Math.Abs(width1-speed);
y1=System.Math.Abs(height1-speed);
}
else if(speed>2*height1 && speed<=2*width1)
{
x1=System.Math.Abs(width1-speed);
y1=System.Math.Abs(height1-(speed-speed/height1*height1));
}
else if(speed>2*width1 &&speed<=3*height1)
{
x1=System.Math.Abs(width1-(speed-speed/width1*width1));
y1=System.Math.Abs(height1-(speed-speed/height1*height1));
}
else if(speed>3*height1 && speed<4*height1)
{
x1=System.Math.Abs(width1-(speed-speed/width1*width1));
y1=System.Math.Abs(speed-speed/height1*height1);
}
else if(speed>=4*height1 && speed<5*height1)
{
x1=System.Math.Abs(speed-speed/width1*width1);
y1=System.Math.Abs(height1-(speed-speed/height1*height1));
}
else if(speed>=5*height1 && speed<4*width1)
{
x1=System.Math.Abs(speed-speed/width1*width1);
y1=System.Math.Abs(speed-speed/height1*height1);
}
else if(speed>=4*width1 && speed<6*height1)
{
x1=System.Math.Abs(width1-(speed-speed/width1*width1));
y1=System.Math.Abs(speed-speed/height1*height1);
}
else if(speed>=6*height1 && speed<5*width1)
{
x1=System.Math.Abs(width1-(speed-speed/width1*width1));
y1=System.Math.Abs(height1-(speed-speed/height1*height1));
}
else if(speed>=5*width1 && speed<7*height1)
{
x1=System.Math.Abs(speed-speed/width1*width1);
y1=System.Math.Abs(height1-(speed-speed/height1*height1));
}
else if(speed>=7*height1 && speed<6*width1)
{
x1=System.Math.Abs(speed-speed/width1*width1);
y1=System.Math.Abs(speed-speed/height1*height1);
}
if(speed==6*width1)
speed=0;
pictureBox1.Location=new System.Drawing.Point(x1,y1);
( 4)程序的編譯 最後編譯程序,C# Builder會在工程所在目錄的BIN\Debug\ScreenSaver.exe文件,我們把ScreenSaver.exe改為ScreenSaver.scr,拷入Windows系統目錄中,這樣就可以運行該屏幕保護程序。
在屏幕保護設置為ScreenSaver,看看效果怎麼樣!