用C#Builder编写屏幕保护程序

原创 2003年07月14日 15:57:00

作者:徐长友

C# Builder是Borland公司推出的又一款基于.NET的开发工具。我们下面就用它做个简单的屏幕保护程序。屏幕保护程序是以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,看看效果怎么样!

   源码可以到我的主页下载 http://yousoft.hi.com.cn

Windows屏幕保护程序的制作

Windows屏幕保护程序的制作 前些日子看了阿卓工作室的一篇关于如何制作屏保程序的文章及其示例,我便想自己做一个玩玩,所以按他说的做,结果不行,所以就在MSDN中搜索了下,得到这么一篇文章...
  • Eternalze
  • Eternalze
  • 2015年06月01日 15:19
  • 2500

Linux下屏保程序

http://www.openswc.com/forum.php?mod=viewthread&tid=560 利用一些便捷的小软件把自己的数码相片做成绚烂多彩的屏保,放在自己的电脑上该是多么惬...
  • openswc
  • openswc
  • 2013年06月16日 10:56
  • 2789

QT关于屏幕保护程序

首先,要写一个屏保程序,需要一个定时器来统计多长时间没有处理事件进入休眠, 第二,事件处理是一个全局性的,过滤处理事件, //直接上源码吧,自己改改。重写Application #ifn...
  • cqltbe131421
  • cqltbe131421
  • 2017年08月01日 10:56
  • 132

黑客帝国_屏幕保护程序

Hacker empire 申明:本程序资源纯属个人创作,文尾提供程序下载地址。 效果图: 程序思路说明:     1:本源码是在VS2013中编写,在其他版本编译器应该也可以。     2:在...
  • qq_31622605
  • qq_31622605
  • 2017年04月19日 10:47
  • 535

win10如何设置或取消屏保密码

进入桌面,点击右键,选择“个性化” 点击左侧列表中的“锁屏界面”,再选择最下方的“屏幕保护程序设置” 在弹出的对话框中,点击“更改电源设置” 在弹出的窗口中选择:“唤醒时需要密码” 接着...
  • u014771464
  • u014771464
  • 2016年03月14日 10:05
  • 10577

Qt实现屏保功能,鼠标一定时间无响应程序进入待机状态

使用Qt实现类似与屏保的功能,当鼠标在一定时间内一直停留在一个位置的时候,程序会自动切入到其他界面(用于显示一些信息),当鼠标移动的时候,屏幕切换回来,效果类似于屏幕保护。 实现想法如下: 想法...
  • u012814360
  • u012814360
  • 2014年01月10日 21:23
  • 1162

mac_ScreenSaver_第1个屏幕保护程序

原文链接:http://cocoadevcentral.com/articles/000088.php written by Brian Christensen Writing a s...
  • u012576807
  • u012576807
  • 2016年06月13日 23:50
  • 615

JAVA中关于多线程的理解

学习了JAVA的多线程以后,感悟颇多,对进程,线程有了一个更直接的认识。 线程是位于进程之下的更小的单位,线程与线程之间存在争夺关系,多个线程共享内存,从而提高了执行效率,也会相互争夺cpu资源竞相...
  • wangbowj123
  • wangbowj123
  • 2017年05月27日 23:01
  • 192

Java程序设计总复习题50题

Java程序设计总复习题 1、 编写一个Java程序在屏幕上输出“你好!”。(p13,例1-1)   //programme name Helloworld.java  public class...
  • clear_ad
  • clear_ad
  • 2016年04月23日 16:29
  • 2253

[Hb-XII] 编写0号中断的处理程序

《汇编语言·第三版》--王爽 1 8086内中断过程 Figure1. 8086内中断过程 中断信息的中断类型码标识中断信息的来源。 多个中断向量连续存储在一片内存中构成中断向量表。 ...
  • misskissC
  • misskissC
  • 2014年12月19日 17:16
  • 1598
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用C#Builder编写屏幕保护程序
举报原因:
原因补充:

(最多只允许输入30个字)