設定螢幕保護程式開始 檢查螢幕保護程式密碼對話盒 執行螢幕保護程式 引用本網頁內容的執行範例 |
設定螢幕保護程式結束 取得螢幕保護程式的檔名 檢查螢幕保護程式是否正在執行中 |
說明:
本來沒空寫這篇的,不過一直有網友寫信來問如何支援 Windows 的螢幕保護程式密碼保護 (Screen Saver Password) ,只好乖乖的寫這篇,免得一直回信回不完
函數名:myScreenSaverStart
說明:這個函數的目的只是當螢幕保護程式開始時,應該讓作用視窗顯示在最上層,並且讓 Ctrl+Alt+Del 等相關功能鍵失效,所以沒什麼特別的部分,本函數需參照視窗工具模組的設定程式在最頂端
引數 | 類型 | 說明 |
hWnd | 必要 | 作用中視窗代碼 |
範例:
myScreenSaverStart Me.hWnd
函數名:myScreenSaverEnd
說明:這個函數為上一函數的反函數,目的是解除 Ctrl+Alt+Del 等相關功能鍵失效狀態,所以沒什麼特別的部分,若有呼叫 myScreenSaverStart ,強烈建議程式結束前,呼叫本函數以解除 Ctrl+Alt+Del 等相關功能鍵失效狀態
範例:
myScreenSaverEnd
講這個函數我就不得不廢話一點了,這個函數是在 MSDN 中都沒有記載的,是璉璉的秘技,那或許有網友要問,那璉璉是怎麼知道的呢?那是因為我用土法煉鋼的方法,對 Windows 目錄下所有檔做 16 進位搜尋,把所有相關函數名硬是抓出來,再根據我對 DLL 檔結構的了解,確認引數的位元組,並猜了幾次引數內容掰對的
函數名:myVeriftyScreenSaverPassword,檢查螢幕保護程式密碼對話盒,正確傳回 True ,錯誤傳回 False
引數 類型 說明 hWnd 必要 作用中視窗代碼 範例:
If myVeriftyScreenSaverPassword(Me.hWnd) Then
myScreenSaverEnd
Unload Me
End If說明:
使用前請確定你有設螢幕保護程式密碼,若沒有設定,則傳回值永遠為真 (True)
函數名:myGetScreenSaverFileName,取得螢幕保護程式的檔名,本函數不需引數
範例:
Debug.Print myGetScreenSaverFileName
' 傳回 C:\WINDOWS\SYSTEM\Flying Through Space.scr說明:
使用前請確定你有設螢幕保護程式密碼,若沒有設定,則傳回值為空字串,本函數需引用註冊資訊相關內容
函數名:myScreenSaverRunning,執行螢幕保護程式,無傳回值
範例:
myScreenSaverRunning
說明:
本函數由取得螢幕保護程式的檔名函數啟動,使用前請確定你有設螢幕保護程式密碼,若沒有設定,則不啟動
函數名:IsScreenSaverRunning,檢查螢幕保護程式是否正在執行中,執行中傳回 True ,未執行傳回 False
範例:
Debug.Print IsScreenSaverRunning
說明:
本函數由取得螢幕保護程式的檔名函數判定,使用前請確定你有設螢幕保護程式密碼,若沒有設定,傳回值永遠為否 (False),另本函數亦引用了視窗工具相關內容,使用時請一併引用!目前尚未進行 Windows NT 的測試,哪位朋友測過後請告訴我
經運用本文內容後,完成的螢幕保護程式並支援 Windows 內建密碼保護功能
轉載 MSDN 文章
本資訊版權屬 Microsoft 所有,文章是 MSDN 裡的,我只是抓回來自己參考並提供網友參考螢幕保護程式