實(shí)現(xiàn)真正的windows屏幕保護(hù)程序

實(shí)現(xiàn)真正的windows屏幕保護(hù)程序

ID:36013352

大?。?1.50 KB

頁數(shù):7頁

時間:2019-04-29

實(shí)現(xiàn)真正的windows屏幕保護(hù)程序_第1頁
實(shí)現(xiàn)真正的windows屏幕保護(hù)程序_第2頁
實(shí)現(xiàn)真正的windows屏幕保護(hù)程序_第3頁
實(shí)現(xiàn)真正的windows屏幕保護(hù)程序_第4頁
實(shí)現(xiàn)真正的windows屏幕保護(hù)程序_第5頁
資源描述:

《實(shí)現(xiàn)真正的windows屏幕保護(hù)程序》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、實(shí)現(xiàn)真正的Windows屏幕保護(hù)程序屏幕保護(hù)程序是一種特殊的應(yīng)用程序,如果用戶打開了Windows的屏幕保護(hù)功能,而且在一特定的時間段內(nèi)沒有任何輸入,系統(tǒng)就回自動啟動屏幕保護(hù)程序。屏幕保護(hù)程序有兩個作用:1.防止屏幕長時間顯示靜態(tài)圖象而降低熒光介質(zhì)的壽命。2.防止用戶離開計算機(jī)時屏幕上的信息被不相干的人看到。相應(yīng)的,屏幕保護(hù)程序至少應(yīng)該實(shí)現(xiàn)以下兩個功能:1.動畫功能:顯示動態(tài)的圖象。2.密碼校驗(yàn)功能:退出程序時屏蔽一切系統(tǒng)熱鍵(Ctrl+Alt+Del,Alt+Tab,Ctrl+Esc等,避免用戶使用熱鍵關(guān)閉程序或切換到其它程序而跳過密碼校驗(yàn)),并要求

2、輸入授權(quán)密碼。我們可以找到不少介紹Windows屏幕保護(hù)程序的資料,也可以找到許多制作屏幕保護(hù)程序的工具。然而,由于不清楚Windows屏幕保護(hù)程序的密碼校驗(yàn)功能,所以它們實(shí)現(xiàn)的往往只是動畫功能,而沒有提供密碼校驗(yàn)功能。實(shí)際上,VisualC++已經(jīng)為我們準(zhǔn)備好了一個屏幕保護(hù)庫,使用它,我們可以非常容易的實(shí)現(xiàn)Windows屏幕保護(hù)程序的一切功能。介紹Windows屏幕保護(hù)庫Windows屏幕保護(hù)庫為我們提供了1.WinMain()函數(shù):完成程序初始化和消息調(diào)度??吹竭@里,可能有些讀者已經(jīng)想到了:我們不能在MFC中使用Windows屏幕保護(hù)庫。為什么呢?

3、原因很簡單:MFC的底層封裝了WinMain()函數(shù),如果在MFC中使用Windows屏幕保護(hù)庫,一個程序中就會有兩個WinMain()函數(shù),顯然說不過去。因此,我們只有使用Win32SDK了。2.DefScreenSaverProc()函數(shù):處理鍵盤、鼠標(biāo)等消息,實(shí)現(xiàn)屏蔽熱鍵及密碼校驗(yàn)等功能。3.一些函數(shù)、變量和常量的定義。大家可以在VisualC++安裝目錄的Include子目錄中找到SCRNSAVE.H文件,通過它,我們可以看到它們具體的定義。當(dāng)系統(tǒng)啟動一個屏幕保護(hù)程序時,WinMain()函數(shù)首先判斷系統(tǒng)傳遞的命令行參數(shù)。如果參數(shù)指示設(shè)置屏幕保

4、護(hù)程序,那么WinMain()函數(shù)將會用函數(shù)BOOLWINAPIScreenSaverConfigureDialog(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam);來創(chuàng)建設(shè)置對話框并將用戶的輸入保存到注冊表中,還會用函數(shù)BOOLWINAPIRegisterDialogClasses(HANDLEhInst)來注冊設(shè)置對話框中的特殊窗口類或自定義控件類,如果沒有特殊窗口類和自定義控件類,RegisterDialogClasses()函數(shù)只需簡單的返回TRUE值。如果參數(shù)指示運(yùn)行屏幕保護(hù)程序,WinMain

5、()函數(shù)會調(diào)用一些初始化代碼來注冊窗口類并建立一個全屏窗口。而發(fā)送給屏幕保護(hù)程序的消息則由函數(shù)LRESULTWINAPIScreenSaverProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam);處理。我們可以在ScreenSaverProc()函數(shù)中處理下面幾個消息(當(dāng)然也可以處理其它消息):WM_CREATE從注冊表中獲取屏幕保護(hù)程序的設(shè)置信息創(chuàng)建一個計時器處理其它的初始化工作WM_TIMER處理繪制工作WM_DESTORY銷毀計時器處理其它銷毀工作ScreenSaverProc()函數(shù)未處理的消

6、息則傳遞給DefScreenSaverProc()處理。從這里我們可以看出,我們所要做的只是實(shí)現(xiàn)ScreenSaverProc(),ScreenSaverConfigureDialog()和RegisterDialogClasses()三個函數(shù),而麻煩的密碼校驗(yàn)和密碼更改已經(jīng)由DefScreenSaverProc()函數(shù)實(shí)現(xiàn)了!剩下的就是編譯并與Windows屏幕保護(hù)程序庫連接了。必須注意的是,Windows屏幕保護(hù)程序庫對資源ID有一些特殊的要求。首先,它要求有一個ID為IDS_DESCRIPTION(定義為#defineIDS_DESCRIPTIO

7、N1,見VisualC++目錄的IncludeSCRNSAVE.H文件),長度小于25的字符串資源,這個字符串將顯示在桌面屬性對話框屏幕保護(hù)程序列表框中。另一個要求是屏幕保護(hù)程序的設(shè)置對話框的ID必須為DLG_SCRNSAVECONFIGURE(定義為#defineDLG_SCRNSAVECONFIGURE2003)。下面我們來看一個屏幕保護(hù)程序框架的源程序:(筆者的開發(fā)環(huán)境為Windows98和VisualC++6.0,由于筆者沒有WindowsNT,故未考慮WindowsNT下的情況。)屏幕保護(hù)程序框架的源程序//////////////////

8、/////主程序///////////////////////#include"windows

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。