屏幕保護程序工作原理
引言
大多數人的計算機都設有屏幕保護程序,它們會在計算機閑置一定時間之后出現。屏幕保護程序可能僅僅是個黑屏,也可能是會像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這樣的程序,我們能將圖像、動畫和聲音組合在一起,創建自己的自定義屏幕保護程序。如果您是一名程序員,那么有大量的聯機資源為您提供技術信息,甚至是源代碼,這樣您就能輕松編寫自己的屏幕保護程序。當您創建出大家夢寐以求的新的精美屏幕保護程序后,您還可以將其上傳到多個站點中,將您的作品與所有人分享!
[責任編輯:小敏]
評論