屏幕保护程序工作原理
引言
大多数人的计算机都设有屏幕保护程序,它们会在计算机闲置一定时间之后出现。屏幕保护程序可能仅仅是个黑屏,也可能是会像SETI@Home这样的专用程序,还可能是像狂舞面条人一样搞笑有趣的小玩意。
SETI@Home是一个很流行的屏幕保护程序, |
但到底什么是屏幕保护程序呢?它的用途是什么呢?它是怎么控制启动时间的呢?在本文中,我们将透过屏幕,看看它后面发生了一些什么事。
什么是屏幕保护程序?
准确地说,屏幕保护程序就是一种可执行文件,只不过它的扩展名不是.exe,而是.scr。通过文件扩展名,计算机可以确定它要处理的是哪一种类型的文件。例如,winword.exe是可以由计算机加载的文字处理应用程序,而article.doc是可以加载到Microsoft Word文字处理应用程序中的文本文件。
可执行文件是指计算机的操作系统将其视为程序或应用程序的文件。对于以.exe(或.scr)结尾的文件,应该不需要其他文件便可执行;如果需要其他文件,那么它们会告诉计算机具体需要哪个文件。
|
现在我们知道,就本质而言,屏幕保护程序是一种程序。在将屏幕保护程序文件放入Windows或System目录中,并为其赋予.scr扩展名后,Windows便明白,自己应将此文件作为屏幕保护程序来处理,使其成为“显示属性”窗口中的可选选项。通过编程,屏幕保护程序文件能够以多种不同的方式来呈现,其中包括:
- 只显示黑屏
- 使用矢量图来绘制各种图案
- 加载和显示特定图像或一组图像
- 显示一行特定文本
- 显示一个动画或一系列动画
- 播放视频序列
- 拥有音乐或声音效果
- 显示其他程序或网站中的信息
- 提供与其他程序或网站进行交互的功能。例如,博闻网屏幕保护程序使鼠标保持在活动状态,这样您便可以单击多个不同的图标来访问博闻网网站的相应内容。
- 要求输入密码才能关闭屏幕保护程序,返回桌面
大多数屏幕保护程序都同时提供了这些功能中的某几种。除了显示一系列图像的幻灯片屏幕保护程序外,屏幕保护程序通常是在屏幕上变幻显示一幅图像、一段文字或一个动画。也有少部分屏幕保护程序具有自定义界面,完全不需要使用“显示属性”窗口。通常,这些屏幕保护程序的扩展名都不是.scr。它们要求用户使用安装程序来安装它们,以便对它们进行正确地配置。
屏幕保护程序的用途
设计屏幕保护程序的初衷是为了防止计算机监视器出现荧光粉烧蚀现象。早期的CRT监视器(特别是单色CRT监视器)在长时间显示同一图像时往往会出现这种问题。这些荧光粉用于生成显示的像素。如果长时间以同一亮度发光,它们便会使CRT的玻璃表面变色。随后,这种变色会导致模糊图像的出现,并会覆盖住监视器上该位置所显示的任何内容。虽然显示技术的进步和节能监视器的出现从根本上已经消除了对屏幕保护程序的需要,但我们仍在使用它们。
其中的主要原因如下:
- 娱乐性——我们使用屏幕保护程序的最常见理由是为了得到乐趣。观看面条人在屏幕上跟随舞曲“Hey Macarena”的节奏跳舞,会让我们开心好一会儿。
- 安全性——设置好带有密码保护的屏幕保护程序后,您可以放心地离开计算机,而不用担心别人在您电脑上看到任何机密信息。
- 统一的外观——许多公司都要求所有员工使用特定的屏幕保护程序。这可以创造协调统一甚至可能具有美感的环境,还能确保不会出现不适宜的屏幕保护程序。
- 广告——一些公司(特别是零售业的公司)会在面向顾客的区域放些计算机,这些计算机中通常都带有宣传公司业务或产品的屏幕保护程序。
- 信息——很多屏幕保护程序都可以提供静态或实时的信息。有的屏幕保护程序可以循环显示一系列小问题。还有的程序则可以从某网站获得股票信息,然后在屏幕上连续显示。
- 分布式计算——还有一种屏幕保护程序可以利用计算机的闲置时间,来处理来自其他地方的数据。SETI@Home便是这种屏幕保护程序的典型例子,它目前已为成千上万的计算机用户所使用。这个屏幕保护程序显示射频频谱的图形,处理从SETI(搜索地外智慧生物)服务器接收到的无线电信号信息。数据处理完成后,它再将结果发送回去。通过利用所有这些计算机的联合处理能力,SETI明显减少了对从射电望远镜接收到的所有信号进行分析筛选的用时。
屏幕保护程序运行过程
接下来,我们将了解屏幕保护程序在Windows 95/98计算机上运行的详细过程。对于其他计算机来说,虽然系统命令和确切细节可能有所不同,但过程基本上都是相同的。
计算机会持续监视系统各个组件之间正在进行的活动。如果系统发现,键盘和鼠标空闲的时间已经达到了“显示属性”窗口的屏幕保护程序设置中指定的时间长度,那么它会向前台(当前)应用程序发送一条特殊命令,询问能否启动屏幕保护程序。如果作为前台应用程序运行的应用程序中打开了计算机辅助训练(CBT)窗口,或者带有非Windows程序(例如从MS-DOS命令提示窗口中运行的程序),则Windows不会启动屏幕保护程序。
以下是详细过程说明:
- 为了确定能否启动屏幕保护程序,Windows向前台应用程序发送一条消息。此命令询问该应用程序:“我能启动屏幕保护程序吗?”非Windows程序无法理解这条命令,因而不会应答。而CBT应用程序能理解这条命令,但它会用一条表示“请不要启动,我正在提供培训。”的命令来响应。所有其他应用程序都应对此命令做出肯定的响应。
- 随后,Windows会查看system.ini文件中的行SCRNSAVE.EXE=____,确定是否已指定屏幕保护程序。如果该条目为空,则忽略执行屏幕保护程序的命令。但如果列有文件名,它便会尝试加载该文件。只要列出的文件确实是屏幕保护程序,系统便会执行该程序,并在当前桌面的最上层创建屏幕保护程序图像。
- 在Windows检测到来自键盘或鼠标的输入之前,屏幕保护程序将一直运行。对于大多数屏幕保护程序来说,晃动鼠标或按下任意键便能立即终止屏幕保护程序。但也可以对屏幕保护程序进行编程,要求仅当按下特定键或按钮,或者当鼠标移动一定的距离时,屏幕保护程序才会停止。此功能在交互式屏幕保护程序中特别有用。
- 当Windows获得应终止屏幕保护程序的输入时,它会查看密码保护功能是否已开启。如果已开启,则弹出一个框,要求输入用户名和密码。反之,屏幕保护程序将立即终止。
当启用了密码保护功能时,如果未能提供正确的用户名和密码,则Windows将继续运行屏幕保护程序。虽然这能提供某种程度的安全性,但请务必记住,Windows 95/98屏幕保护程序会创建自己的密码对话框,再从系统处请求密码和用户信息。如果对屏幕保护程序来源的可靠性并不十分确定,则应谨慎使用密码保护功能。黑客可以(也确实有过这样的真实案例)创建一些屏幕保护程序,利用这一系统安全弱点来捕获密码。运行Windows NT的系统则不存在这个问题,NT系统仅允许屏幕保护程序调出系统密码对话框,而不能自行创建。
在下一部分中,我们将了解如何设置自己的屏幕保护程序。
设置屏幕保护程序
在Windows 95/98中,您可以轻松地按照以下步骤设置屏幕保护程序:
- 依次单击开始->设置,然后转到控制面板。
- “控制面板”窗口打开后,双击显示图标。随即将弹出显示属性窗口。
- 选择屏幕保护程序选项卡,然后从下拉菜单中选择要使用的屏幕保护程序。
- 确定希望在系统空闲多少分钟之后让Windows启动屏幕保护程序,并在所提供的框中输入该时间。
- 您可以单击预览,查看它全屏运行时的样子。如果要更改设置,请单击设置。根据屏幕保护程序的不同,此窗口可能会提供一个或多个可以修改的选项。
- 完成对设置的更改后,单击确定。此外,您还可以选中“在恢复时使用密码保护”框,用屏幕保护程序为计算机提供安全性。再次单击确定,您的屏幕保护程序就设置完成,可以使用了!
获得屏幕保护程序的途径有多种:
- 使用Windows自带的标准屏幕保护程序之一
- 购买屏幕保护程序集
- 从互联网上成千上万个免费屏幕保护程序中下载一个
- 使用提供屏幕保护程序设计功能的程序自己制作
- 通过编写实际代码从头创建一个屏幕保护程序
数年前,商业屏幕保护程序集还十分流行,但随着互联网的发展,大量免费屏幕保护程序涌现了出来,自然也就没什么人再愿意为商业屏幕保护程序集付费。使用Screen Saver Builder这样的程序,我们能将图像、动画和声音组合在一起,创建自己的自定义屏幕保护程序。如果您是一名程序员,那么有大量的联机资源为您提供技术信息,甚至是源代码,这样您就能轻松编写自己的屏幕保护程序。当您创建出大家梦寐以求的新的精美屏幕保护程序后,您还可以将其上传到多个站点中,将您的作品与所有人分享!
[责任编辑:小敏]
评论
查看更多