HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "ScreenSaveTimeout"
strValue = "300"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
為了做到這點,我們一開始建立名為 HKEY_CURRENT_USER 的常數,並將其值設定為&H80000001。這就告訴 WMI 的「登錄」提供者,我們正要處理登錄的 HKEY_CURRENT_USER 部份。如果想要處理 HKEY_LOCAL_MACHINE,我們就會將常數設定為等於&H80000001。&H80000003 則會讓我們處理 HKEY_USERS。
我們在本機電腦上使用這段指令碼,因此會將變數 strComputer 設定為一點 (也就是代表本機電腦的 WMI 捷徑)。不過「登錄」提供者最棒的地方,就是在遠端電腦也能發揮和本機電腦相同的作用。如果您要變更遠端電腦上的螢幕保護程式等候逾時值,只需要將 strComputer 的值設定為該電腦的名稱即可。
然後我們連線到 WMI 服務,並指定登錄路徑 (Control Panel\Desktop)。接著我們呼叫 CreateKey 方法。這只是為了確保安全。如果我們尋找的登錄機碼不存在,CreateKey 就會建立該機碼。如果登錄機碼已經存在,CreateKey 就不會有任何動作。
在指定我們要變更的登錄值名稱 (ScreenSaveTimeout) 及其新值 (300) 以後,我們使用 SetStringValue 方法將等候逾時值變更為 300 秒。
還不錯吧?如需關於「登錄」提供者 (可能是所有 WMI 提供者中最不受重視的一種) 的詳細資訊,請參閱《Microsoft Windows 2000 指令碼指南》中的登錄章節 (英文)。也可以參考聲名狼藉的 Tweakomatic (英文)。這個驚人的公用程式,能夠確實編寫從登錄讀取和寫入的指令碼。讓我們模仿一下舊廣告詞:Tweakomatic 大名鼎鼎,「保證」有效!
順便一提,以下還有一段有用的螢幕保護程式指令碼。這段指令碼確保螢幕保護程式受到密碼保護:
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "ScreenSaverIsSecure"
strValue = "1"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
您看登錄指令碼是多麼的有趣!Tweakomatic 還具有管理螢幕保護程式的額外指令碼,以及管理 [開始] 功能表、[工作列]、Windows [檔案總管] 資料夾設定值,以及其他許多項目的指令碼。如果您想要尋找管理一般桌面設定值的方法,這就是開始上手的最好地方。 |