`
sptgreen
  • 浏览: 45520 次
  • 性别: Icon_minigender_1
  • 来自: 荆门
社区版块
存档分类
最新评论

用C#制作字幕显示屏幕保护

阅读更多
本文介绍使用C#制作屏幕保护的方法,这个屏幕保护就是仿效视窗系统自带的字幕屏保。
  屏幕保护程序的扩展名虽然是"scr",但其实是一个可执行的"exe"文件。但他又是一个比较独特的"exe"文件。下面就来探讨一下,用C#是如何编写屏幕保护的整个过程。
  一.本文中介绍的程序设计及运行环境
  (1).微软视窗2000 服务器版
  (2)..Net Framework SDK 正式版
  二.C#编写字幕显示屏保程序的关键步骤以及解决方法:
  (1).设定程序的窗体符合屏幕保护的要求:
  由于屏幕保护程序就是一个可执行程序,所以在编写屏幕保护程序的时候,首先按照可执行程序来设计。但屏幕保护有自身的特点。譬如:屏幕保护都是充满整个屏幕的,并且没有无边。屏幕保护运行的时候,不能显示任务栏。在程序设计中实现这些特点,关键就在于对窗体的某些属性的设定上。下面是对窗体属性的设定,就可以满足屏幕保护的要求,具体如下:
  this.Name = "ScreenSaver" ;
//窗体运行后无边界
this.FormBorderStyle = FormBorderStyle.None ;
//程序运行后不显示在任务栏上
this.ShowInTaskbar = false ;
//窗体运行后,最大化,充满整个屏幕
  (2).使得字符在屏幕上不断移动:
  实现字符在屏幕上像字符屏保一样不断移动,是通过一个定时器来完成的。不断移动的字符,其实就是一个Label组件。当设定好Label组件要显示的字符后,也就设定了在屏幕上要移动的字符。定时器每隔一段时间,都把Label组件的横坐标减去一个定值,这样在定时器的驱动下,Label组件的位置就变换了,带来的视觉效果,就是字符不断移动。
  当Label组件的位置已经移动到屏幕的外面以后,这是就有把Label组件的横坐标回复到起始值(即:屏幕的最右边),然后判断Label组件的纵坐标是否位于屏幕的顶部,如果在顶部,则把纵坐标的位置重置在中部;如果在中部,则重置在底部;如果在底部,则重置在顶部。经过了这些判断,字符不仅可以实现从右往左移动,还可以变换字符进入屏幕的位置。从而也丰富了屏幕保护的内容。其实要实现这些判断,首先还必须知道屏幕的工作区域,因为只有先知道屏幕的工作区域,在能够实现对Label组件的横坐标和纵坐标的设定工作。下面就是实现此步骤地具体代码:
  //得到计算机屏幕的工作区域
Rectangle ssWorkArea = Screen.GetWorkingArea ( this ) ;
lblMarquee.Location = new Point ( ssWorkArea.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 ( 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 ) ;
//重定位到顶部
else
lblMarquee.Location = new Point ( lblMarquee.Location.X , 0 ) ;
}


(3).检测键盘、鼠标状态,确定退出屏幕保护程序:
  在屏幕保护运行的时候,当键盘被按动,或者鼠标移动,屏幕保护都会关闭。在实际的程序设计中,检测键盘是否被按动,通过"KeyDown"事件就可以判断。在程序中,判断鼠标是否移动的思路是通过二个全局变量记录下,程序刚刚运行的时候的鼠标的位置(即:X和Y),当鼠标移动的时候,判断移动后的位置和记录的位置是否有出入,如果有出入,就关闭屏保。下面代码功能就是检测鼠标移动,并结束屏幕保护,具体如下:
  // 把鼠标刚刚开始移动的位置给记录下来
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"就是记录程序运行的时候,鼠标的起始位置。
  (4).对Windows对屏幕保护设定参数的响应:
  当屏幕保护加入到Windows系统后,你就可以通过Windows系统来设定屏幕保护的属性了,由于我们制作的这个屏幕保护,没有可供设置的选项,但也要对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程序,编译的命令如下:
  csc /t:winexe screen.cs
  在正确编译"Screen.cs"后,可以得到"Screen.exe"文件,把"Screen.exe"改名为"Screen.scr",并拷贝到Windows的"System32"目录中去。至此这个字符屏保就完成了从编写到配置的全部工作了。
分享到:
评论

相关推荐

    用C#制作字幕显示屏幕保护, 本文介绍使用C#制作屏幕保护的方法,这个屏幕保护就是仿效视窗系统自带的字幕屏保。

    在本文中,我们将深入探讨如何使用C#编程语言来创建一个类似于Windows系统内置的字幕显示屏幕保护程序。屏幕保护程序是一种在用户无操作时自动启动的程序,旨在防止显示器因长时间静止显示同一图像而烧屏。在C#中,...

    C#制作屏幕保护的方法

    C#制作屏幕保护的方法 本文将详细介绍使用 C# 制作屏幕保护的方法,包括屏幕保护程序的设计、实现字幕显示屏保程序的关键步骤、解决方法等。 一、屏幕保护程序的设计 屏幕保护程序是一个可执行程序,但是它又是一...

    C#制作的屏幕保护程序

    本案例将深入探讨如何使用C#来制作一个屏幕保护程序,特别是涉及到图像处理和动态字幕显示的部分。 首先,创建一个C#屏幕保护程序的基础架构需要理解Windows Forms或WPF(Windows Presentation Foundation)的应用...

    屏幕锁屏工具,c#制作

    以上就是利用C#制作屏幕锁屏工具的主要技术和步骤。通过这个项目,开发者不仅可以掌握Windows Forms的基本应用,还能深入了解图形绘制、多线程编程、系统权限管理以及安全性设计等多个方面的知识。如果你对源代码感...

    c#制作屏幕保护程序步骤(字幕屏保)

    下面我们将详细讲解制作字幕屏保的关键步骤: 1. **设置窗体属性**: 屏幕保护程序需要全屏显示且没有边界,同时不应出现在任务栏中。在C#中,我们可以创建一个窗体,并通过设置窗体属性来满足这些需求。例如,将`...

    C#图形图象处理

    “案例3:用C#制作字幕显示屏幕保护”涉及到文字的显示和屏幕保护程序的创建。在C#中,你可以创建一个全屏窗体,然后利用Graphics对象和Font、StringFormat等对象绘制文字。屏幕保护程序的实现可以通过创建一个...

    一些简单的C#图形图象处理

    3. **案例3:用C#制作字幕显示屏幕保护** 屏幕保护程序通常涉及定时器和动画效果。在这个案例中,开发者可能创建了一个自定义的控件或窗体,使用`Graphics`类绘制字幕并实现滚动效果。可能还使用了`Timer`控件来...

    Visual C# 案例开发集锦13

    这个压缩包包含了一个特定的案例——"案例3:用C#制作字幕显示屏幕保护",这是一个非常适合初学者练习和提升C#技能的项目。下面将详细介绍这个案例中的关键知识点。 1. **C#语言基础**:首先,这个案例会涉及到C#...

    屏幕保护程序C#源码

    屏幕保护程序是计算机系统中的一种特殊程序,当用户在一段时间内无操作时,它会自动启动,以防止显示器因长时间静态显示而烧伤。在Windows操作系统中,屏幕保护程序通常以.scr文件格式存在。本项目是使用C#编程语言...

    C# 文字滚动的屏幕保护程序

    【C#文字滚动的屏幕保护程序】是一种使用C#编程语言开发的简单应用程序,它主要用于在计算机屏幕上显示滚动的文字效果,作为一个屏幕保护程序使用。这种屏幕保护程序在用户无操作时自动激活,既展示了C#的基本功能,...

    C#制作的黑屏文字屏保

    在本文中,我们将深入探讨如何使用C#编程语言制作一个简单的黑屏文字屏保程序。屏保程序在计算机操作系统中通常被用作一种休息模式,防止长时间显示同一图像导致的屏幕烧录。C#作为微软.NET框架的一部分,提供了丰富...

    c#基础实例

    实例1 一个简易的绘图程序 实例2 电子石英钟显示 实例3 用C#制作字幕显示屏幕保护 实例4 移动的按钮 实例5 抓图软件的实现 第三章 多媒体应用 实例1 WinForm中播放音频与Flash动画 ...

    第2章 图形图象处理

    实例3展示了如何用C#制作字幕显示屏幕保护。这涉及到文本渲染和动画效果。TextRenderer类用于高效地在屏幕上绘制文本,而动画效果则可以通过改变字体大小、位置或颜色来实现。通过设置定时器控制文字的出现和消失,...

    模拟屏幕保护程序源代码

    屏幕保护程序是计算机系统中的一种特殊程序,主要目的是在用户长时间未操作计算机时,自动启动以防止显示器因静态图像长时间显示而烧伤像素。在Windows操作系统中,屏幕保护程序尤其常见,它们通常会展示动态的图像...

    自定义屏保

    3. **Screen Saver Interface(屏幕保护程序接口)**:Windows提供了一套接口,允许开发者创建符合标准的屏保程序。这包括实现`IScreenSaver`接口,该接口定义了屏保的初始化、显示和预览等功能。 4. **WinForms或...

    C#编程经验技巧宝典

    C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 &lt;br&gt;1.1 Visual Studio开发环境安装与配置 2 &lt;br&gt;0001 安装Visual Studio 2005开发环境须知 2 &lt;br&gt;0002 配置合适的Visual Studio 2005...

Global site tag (gtag.js) - Google Analytics