問:
您好,腳本專家!我最近下載了你們的“腳本中心”屏幕保護程序,當有人登錄計算機時,它運行起來棒極了。但是無人登錄時,計算機卻使用其它屏幕保護程序。如何讓計算機在無人登錄時也使用“腳本中心”屏幕保護程序?
-- RF
答:
您好,RF。您知道,我們遇到過這種情況,您可能在設法欺騙這些老腳本專家們。舉個例子來說,我們怎么知道您希望無人登錄計算機時運行的屏幕保護程序就是我們的屏幕保護程序?也許您只是奉承腳本專家,好讓腳本專家回答您的問題?;卮鹜陠栴}后,您就會把我們甩掉,安裝其它一些與腳本編寫有關的屏幕保護程序作為默認屏幕保護程序。RF 啊 RF:您真的認為腳本專家頭腦如此簡單愿意受用這樣的假意恭維嗎?
嗯,您是該這樣認為,因為我們確實如此:
復制代碼 代碼如下:
Const HKEY_USERS = H80000003
strComputer = "."
Set objReg = GetObject("winmgmts:\\" strComputer "\root\default:StdRegProv")
strKeyPath = ".Default\Control Panel\Desktop"
ValueName = "SCRNSAVE.EXE"
strValue = "C:\WINDOWS\System32\Script Center.scr"
objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue
正如您所看到的,這是一個用于更改注冊表的 WMI 腳本。它與我們過去為您展示的許多其它注冊表修改腳本非常相似,但有一處特殊更改。在以前的腳本中,我們總是先定義一個常量,告訴腳本我們要處理 HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE 注冊表配置單元。這樣做有充分的理由:我們希望將所做的一切更改都應用于當前用戶或計算機本身。不過,請注意此腳本的第一行:
Const HKEY_USERS = H80000003
秘密就在這里:這一次我們要處理 HKEY_USERS 注冊表配置單元。除了其它用途外,HKEY_USERS 配置單元為您提供了這樣一個場所:在其中配置的設置可應用于登錄到計算機的任何用戶,而不僅僅是某一特定的用戶。換言之,如果您使用 HKEY_USERS 配置屏幕保護程序,該屏幕保護程序便是默認屏幕保護程序,會應用于登錄到計算機的任何新用戶。(除非用戶明確配置其它屏幕保護程序,否則會繼續(xù)應用默認屏幕保護程序。)同樣,無人登錄計算機時,也會使用此默認屏幕保護程序。
酷吧?順便提一下,您還可以使用該注冊表配置單元配置顯示在登錄屏幕上的墻紙;只需將注冊表值 HKEY_USERS\.Default\Control Panel\Desktop\Wallpaper 設置為相應的文件路徑即可。類似下面的代碼:
復制代碼 代碼如下:
Const HKEY_USERS = H80000003
strComputer = "."
Set objReg = GetObject("winmgmts:\\" strComputer "\root\default:StdRegProv")
strKeyPath = ".Default\Control Panel\Desktop"
ValueName = "Wallpaper"
strValue = "C:\WINDOWS\System32\Script Center.bmp"
objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue
定義常量后,接下來要連接本地計算機上的 WMI 服務(雖然此腳本在遠程計算機上的運行效果同樣不錯)。然后,為下面三個不同的變量賦值:
• strKeyPath - HKEY_USERS 內(nèi)注冊表項的路徑。在本例中,路徑為 .Default\Control Panel\Desktop。
• ValueName - 要更改的注冊表值的名稱 (SCRNSAVE.EXE)。
• strValue - 要賦給 SCRNSAVE.EXE 的新值。在此腳本中,該值是此屏幕保護程序的完整路徑。
最后,我們要調(diào)用 SetStringValue 方法(將常量 HKEY_USERS 和這三個變量一起作為參數(shù)傳遞),這樣就大功告成了:
objReg.SetStringValue HKEY_USERS, strKeyPath, ValueName, strValue
現(xiàn)在,如果您注銷后再等幾分鐘,就會運行“腳本中心”屏幕保護程序。(假設注冊表值 ScreenSaveActive 設置為 1;如果設置為 0,則表示禁用該屏幕保護程序。)
知道這有多簡單了吧?噢,不,我們不是說腳本(雖然腳本也非常簡單);我們是說要獲得問題的答案有多簡單,當然,您提問題的措辭很對路。就象常說的那句話,誰都愛聽恭維話。