下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、字幕显示屏幕保护 用C制作字幕显示屏幕保护版权所有 2003-2005发表时间:2005-3-13 关键字:未知作者: 马金虎 本文介绍使用C#制作屏幕保护的方法,这个屏幕保护就是仿效视窗系统自带的字幕屏保。 屏幕保护程序的扩展名虽然是"scr",但其实是一个可执行的"exe"文件。但他又是一个比较独特的"exe"文件。下面就来探讨一下,用C是如何编写屏幕保护的整个过程。 一本文中介绍的程序设计及运行环境 (1).微软视窗2000 服务器版 (2).Net Framework SDK 正式版 二C编写字幕显示屏保程序的关键步骤以及解决
2、方法: (1).设定程序的窗体符合屏幕保护的要求: 由于屏幕保护程序就是一个可执行程序,所以在编写屏幕保护程序的时候,首先按照可执行程序来设计。但屏幕保护有自身的特点。譬如:屏幕保护都是充满整个屏幕的,并且没有无边。屏幕保护运行的时候,不能显示任务栏。在程序设计中实现这些特点,关键就在于对窗体的某些属性的设定上。下面是对窗体属性的设定,就可以满足屏幕保护的要求,具体如下: this.Name = "ScreenSaver" ; /窗体运行后无边界 this.FormBorderStyle = FormBorderStyle.None ; /程序运行后不显示在任务栏上 thi
3、s.ShowInTaskbar = false ; /窗体运行后,最大化,充满整个屏幕 (2).使得字符在屏幕上不断移动: 实现字符在屏幕上像字符屏保一样不断移动,是通过一个定时器来完成的。不断移动的字符,其实就是一个Label组件。当设定好Label组件要显示的字符后,也就设定了在屏幕上要移动的字符。定时器每隔一段时间,都把Label组件的横坐标减去一个定值,这样在定时器的驱动下,Label组件的位置就变换了,带来的视觉效果,就是字符不断移动。 当Label组件的位置已经移动到屏幕的外面以后,这是就有把Label组件的横坐标回复到起始值(即:屏幕的最右边),然后判断Label组件的纵坐标是否
4、位于屏幕的顶部,如果在顶部,则把纵坐标的位置重置在中部;如果在中部,则重置在底部;如果在底部,则重置在顶部。经过了这些判断,字符不仅可以实现从右往左移动,还可以变换字符进入屏幕的位置。从而也丰富了屏幕保护的内容。其实要实现这些判断,首先还必须知道屏幕的工作区域,因为只有先知道屏幕的工作区域,在能够实现对Label组件的横坐标和纵坐标的设定工作。下面就是实现此步骤地具体代码: /得到计算机屏幕的工作区域 Rectangle ssWorkArea = Screen.GetWorkingArea ( this ) ; lblMarquee.Location = new Point ( ssWorkA
5、rea.Width - iDistance , lblMarquee.Location.Y ) ; /显示标签 lblMarquee.Visible = true ; / 增加2个象素点,你可以通过修改speed的值来改变标签的移动速度 iDistance += speed ; / 如果标签已经走出屏幕,则把标签的位置重定位到屏幕的右边 if ( lblMarquee.Location.X <= -( lblMarquee.Width ) ) /Reset the distance to 0. iDistance = 0 ; /判断标签的位置是否在顶部,如果在,则重定位到中部 if (
6、lblMarquee.Location.Y = 0) lblMarquee.Location = new Point ( 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 ) ; /
7、重定位到顶部 else lblMarquee.Location = new Point ( lblMarquee.Location.X , 0 ) ; (3).检测键盘、鼠标状态,确定退出屏幕保护程序: 在屏幕保护运行的时候,当键盘被按动,或者鼠标移动,屏幕保护都会关闭。在实际的程序设计中,检测键盘是否被按动,通过"KeyDown"事件就可以判断。在程序中,判断鼠标是否移动的思路是通过二个全局变量记录下,程序刚刚运行的时候的鼠标的位置(即:X和Y),当鼠标移动的时候,判断移动后的位置和记录的位置是否有出入,如果有出入,就关闭屏保。下面代码功能就是检测鼠标移动,并结束屏幕保护
8、,具体如下: / 把鼠标刚刚开始移动的位置给记录下来 if ( ixStart = 0 && iyStart = 0 ) ixStart = e.X ; iyStart = e.Y ; return ; /判断自屏幕保护程序运行后,鼠标的位置是否变动 else if ( e.X != ixStart | e.Y != iyStart ) Cursor .Show ( ) ; timerSaver.Enabled = false ; Application .Exit ( ) ; ; 其中"ixStar"和"iyStart"就是记录程序运行
9、的时候,鼠标的起始位置。 (4).对Windows对屏幕保护设定参数的响应: 当屏幕保护加入到Windows系统后,你就可以通过Windows系统来设定屏幕保护的属性了,由于我们制作的这个屏幕保护,没有可供设置的选项,但也要对Windows的"设置"按钮进行响应。而要完成这种响应,所用的知识就是在Windows系统中按动"设置"按钮,对屏幕保护进行设定时,其实也就对屏保程序传递"/c"字符。而要设定口令,则会传递"/a"字符,据此,可以得到代码: if (args 0 .Substring ( 0 , 2 ).Eq
10、uals ( "/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程序,编译的命令如下: csc /t:winexe screen.cs 在正确编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 头发和头皮用化妆制剂产业链招商引资的调研报告
- 布莱尔盲文手机产品供应链分析
- 乐谱产品供应链分析
- 家养宠物用毯产品供应链分析
- 公寓管理行业经营分析报告
- 同声传译服务行业经营分析报告
- 农业智能施肥机行业相关项目经营管理报告
- 移动电话用屏幕保护膜产品供应链分析
- 外文模板印刷用产品供应链分析
- 分成格的漆器餐盘产业链招商引资的调研报告
- 六年级上册道德与法治全册教学课件
- 2023-2024学年全国小学二年级上语文人教版期中考卷(含答案解析)
- 2024-2030年耳塞(耳塞)行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 提高四级手术术前多学科讨论完成率实施方案
- 监理单位安全教育培训计划(3篇模板)
- 有趣的汉字《甲骨文》课件
- 技术合作商务合作协议书范本
- 学考复习检测卷 高二上学期物理人教版(2019)必修第三册
- 老旧小区燃气管线切改投标方案技术标
- 高等学校教师岗前培训考试暨教师资格笔试题库【巩固】
- MOOC 循证医学-南通大学 中国大学慕课答案
评论
0/150
提交评论