使用C#开发屏幕保护程序步骤_第1页
使用C#开发屏幕保护程序步骤_第2页
使用C#开发屏幕保护程序步骤_第3页
使用C#开发屏幕保护程序步骤_第4页
使用C#开发屏幕保护程序步骤_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、使用 C# 开发屏幕保护程序步骤本文介绍使用 C# 制作屏幕保护的方法,这个屏幕保护 就是仿效视窗系统自带的字幕屏保。屏幕保护程序的扩展名虽然是 scr ,但其实是一个可执 行的 exe 文件。但他又是一个比较独特的 exe 文件。下面 就来探讨一下,用 C 是如何编写屏幕保护 的整个过程。一本文中介绍的程序设计及运行环境(1).微软视窗 2000 服务器版(2).Net Framework SDK 正式版二 C 编写字幕显示屏保程序的关键步骤以及解决方 法:(1).设定程序的窗体符合屏幕保护的要求: 由于屏幕保护程序就是一个可执行程序,所以在编写屏 幕保护程序的时候,首先按照可执行程序来设计

2、。但屏幕保 护有自身的特点。譬如:屏幕保护都是充满 整个屏幕的,并且没有无边。屏幕保护运行的时候,不能显 示任务栏。在程序设计中实现这些特点,关键就在于对窗体 的某些属性的设定上。下面是对窗体属性的 设定,就可以满足屏幕保护的要求,具体如下: this.Name = ScreenSaver ;/窗体运行后无边界this.FormBorderStyle = FormBorderStyle.None ; /程序运行后不显示在任务栏上 this.ShowInTaskbar = false ;/窗体运行后,最大化,充满整个屏幕(2).使得字符在屏幕上不断移动: 实现字符在屏幕上像字符屏保一样不断移动,

3、是通过一 个定时器来完成的。不断移动的字符,其实就是一个 Label 组件。当设定好 Label 组件要显示的字符后, 也就设定了在屏幕上要移动的字符。定时器每隔一段时间, 都把 Label 组件的横坐标减去一个定值,这样在定时器的驱 动下, Label 组件的位置就变换了,带来的视 觉效果,就是字符不断移动。当 Label 组件的位置已经移动到屏幕的外面以后,这是 就有把 Label 组件的横坐标回复到起始值(即:屏幕的最右 边),然后判断 Label 组件的纵坐标是否位于屏 幕的顶部,如果在顶部,则把纵坐标的位置重置在中部;如 果在中部,则重置在底部;如果在底部,则重置在顶部。经 过了这些

4、判断,字符不仅可以实现从右往左 移动,还可以变换字符进入屏幕的位置。从而也丰富了屏幕 保护的内容。其实要实现这些判断,首先还必须知道屏幕的工作区域,因为只有先知道屏幕的工作区域,在能够实现对 Label 组件的横坐标和纵坐标的设定工作。 下面就是实现此步骤地具体代码: /得到计算机屏幕的工作区域Rectangle ssWorkArea = Screen.GetWorkingArea ( this ) ; lblMarquee.Location = new Point ( ssWorkArea.Width - iDistance , lblMarquee.Location.Y ) ;/显示标签

5、lblMarquee.Visible = true ;/ 增加 2 个象素点 ,你可以通过修改 speed 的值来改变标签 的移动速度iDistance += speed ;/ 如果标签已经走出屏幕,则把标签的位置重定位到屏幕的 右边if ( lblMarquee.Location.X = -( lblMarquee.Width ) )/Reset the distance to 0. iDistance = 0 ;/判断标签的位置是否在顶部,如果在,则重定位到中部 if ( lblMarquee.Location.Y = 0)lblMarquee.Location = new Point (

6、 lblMarquee.Location.X ,( ssWorkArea.Height / 2 ) ) ; /判断标签的位置是否在中部,如果在,则重定位到底部 else if ( lblMarquee.Location.Y = ssWorkArea.Height / 2 ) lblMarquee.Location = new Point ( lblMarquee.Location.X , ssWorkArea.Height - lblMarquee.Height ) ;/重定位到顶部else lblMarquee.Location = new Point ( lblMarquee.Locati

7、on.X , 0 ) ;(3) .检测键盘、鼠标状态,确定退出屏幕保护程序: 在屏幕保护运行的时候, 当键盘被按动, 或者鼠标移动, 屏幕保护都会关闭。在实际的程序设计中,检测键盘是否被 按动,通过 KeyDown 事件就可以判断。在 程序中,判断鼠标是否移动的思路是通过二个全局变量记录 下,程序刚刚运行的时候的鼠标的位置(即: X和丫),当鼠 标移动的时候,判断移动后的位置和记录的 位置是否有出入,如果有出入,就关闭屏保。下面代码功能 就是检测鼠标移动,并结束屏幕保护,具体如下: / 把鼠标刚刚开始移动的位置给记录下来 if ( ixStart = 0 & iyStart = 0 )ixSt

8、art = e.X ;iyStart = e.Y ; return ;/判断自屏幕保护程序运行后,鼠标的位置是否变动else if ( e.X != ixStart | e.Y != iyStart )Cursor .Show ( ) ; timerSaver.Enabled = false ; Application .Exit ( ) ;其中 ixStar 和 iyStart 就是记录程序运行的时候,鼠标 的起始位置。(4 ).对 Windows 对屏幕保护设定参数的响应: 当屏幕保护加入到 Windows 系统后,你就可以通过 Windows 系统来设定屏幕保护的属性了, 由于我们制作的

9、这 个屏幕保护,没有可供设置的选项,但也要对 Windows 的 设置 按钮进行响应。而要完成这种响应,所用 的知识就是在 Windows 系统中按动 设置 按钮,对屏幕保护 进行设定时,其实也就对屏保程序传递 /c 字 符。而要设定口令,则会传递 /a 字符,据此,可以得到代 码:if (args 0 .Substring ( 0 , 2 ).Equals ( /c ) )MessageBox.Show( 此屏幕保护没有可供设置的选项! , 用 C 制造屏幕保护 ,MessageBoxButtons.OK ,MessageBoxIcon.Information ) ; Application.Exit ( ) ;else if ( args 0 = /a )MessageBox.Show( 此屏幕保护没有可供设定口令的选项!,用C #制造屏幕保护,MessageBoxButtons.OK ,MessageBoxIcon.Information ) ; Application.Exit ( ) ;三总结:由于屏幕保护都是 Windows 程序,所以编译的时候, 要产生 Windows 程序,编译的命令如下:c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论