用vbscript實(shí)現(xiàn)修改屏幕保護(hù)的等待時(shí)間長(zhǎng)度
更新時(shí)間:2007年04月06日 00:00:00 作者:
問(wèn):
嗨,Scripting Guy!是否可以使用腳本來(lái)修改計(jì)算機(jī)上屏幕保護(hù)的等待時(shí)間長(zhǎng)度?
-- JN
答:
嗨,JN。出于某些原因,Microsoft 的腳本技術(shù)在涉及 Windows 設(shè)置和組件方面有些不足,例如屏幕保護(hù)、墻紙、任務(wù)欄和開(kāi)始菜單等等。您可以使用 WMI(尤其是 Win32_Desktop 類)來(lái)讀取這些值,但不能使用 Win32_Desktop 類(或是任何等價(jià)的類或?qū)ο螅﹣?lái)修改這些值。為什么呢?老實(shí)說(shuō),我們也不知道;
幸好,這些值大都存儲(chǔ)在 Windows 注冊(cè)表中,而只要這些值存儲(chǔ)在注冊(cè)表中,您就可以編寫(xiě)腳本來(lái)管理它們。屏幕保護(hù)程序也不例外。打開(kāi) Regedit,讓我們來(lái)看看 HKEY_CURRENT_USER 內(nèi)部;在 Control Panel\Desktop 項(xiàng)中,您將會(huì)看到幾個(gè)與屏幕保護(hù)程序有關(guān)的注冊(cè)表值,包括 ScreenSaveTimeout。您可能猜到了,這就是確定屏幕保護(hù)等待的時(shí)間長(zhǎng)度的注冊(cè)表值。默認(rèn)情況下,這個(gè)值被設(shè)置為 600 秒,也就是 10 分鐘。
那么,如何更改這個(gè)值呢?通過(guò)使用如下的腳本可以將等待時(shí)間更改為 5 分鐘(300 秒):
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
為了達(dá)到這個(gè)目的,我們首先創(chuàng)建一個(gè)名為 HKEY_CURRENT_USER 的常量,并將它的值設(shè)置為 &H80000001;這告訴 WMI 的注冊(cè)表提供程序,我們正在處理注冊(cè)表的 HKEY_CURRENT_USER 部分。如果我們要處理 HKEY_LOCAL_MACHINE,那么我們就需要將常量設(shè)置為 &H80000001;將常量設(shè)置為 &H80000003 則可以處理 HKEY_USERS。
由于我們?cè)诒镜赜?jì)算機(jī)上執(zhí)行這個(gè)腳本,因此我們將變量 strComputer 設(shè)置為點(diǎn)(在 WMI 中表示本地計(jì)算機(jī)的快捷方式)。注冊(cè)表提供程序的出色之處在于,它可以在遠(yuǎn)程計(jì)算機(jī)上工作,并且性能和在本地計(jì)算機(jī)上一樣好。因此如果您希望更改遠(yuǎn)程計(jì)算機(jī)上的屏幕保護(hù)等待時(shí)間,只需將 strComputer 的值設(shè)置為那臺(tái)計(jì)算機(jī)的名稱即可。
從此時(shí)開(kāi)始,我們連接到 WMI 服務(wù),并指定注冊(cè)表路徑 (Control Panel\Desktop)。接下來(lái)我們將調(diào)用 CreateKey 方法。這是為了保險(xiǎn)起見(jiàn)。因?yàn)槿绻覀儾檎业淖?cè)表項(xiàng)不存在,則 CreateKey 就會(huì)創(chuàng)建這個(gè)注冊(cè)表項(xiàng)。如果注冊(cè)表項(xiàng)已經(jīng)存在,那么 CreateKey 將會(huì)保留這個(gè)注冊(cè)表項(xiàng)。
在指定要更改的注冊(cè)表值名稱 (ScreenSaveTimeout) 以及新值 (300) 之后,接下來(lái)我們使用 SetStringValue 方法來(lái)將等待時(shí)間更改為 300 秒。
還不算太壞,是吧?有關(guān)注冊(cè)表提供程序——可能是所有 WMI 提供程序中最不常用的一個(gè)了——的更多信息,請(qǐng)參閱“Microsoft Windows 2000 腳本指南”中的 “注冊(cè)表”一章。并訪問(wèn)聲名不佳的Tweakomatic,這個(gè)令人驚奇的實(shí)用工具可以編寫(xiě)可對(duì)注冊(cè)表進(jìn)行讀寫(xiě)操作的腳本。為了從傳統(tǒng)商業(yè)中沾光,它使用了 Tweakomatic 的名字,這的確大有好處。
順便提及,以下是另一個(gè)比較有用的屏幕保護(hù)程序腳本,這個(gè)腳本可以確保屏幕保護(hù)程序受到密碼保護(hù):
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
你看,注冊(cè)表腳本編寫(xiě)多么有趣?!Tweakomatic 還有其他腳本可以用來(lái)管理屏幕保護(hù)程序、開(kāi)始菜單、任務(wù)欄、Windows 資源管理器文件夾設(shè)置以及更多內(nèi)容。如果您正在尋找管理常見(jiàn)桌面設(shè)置的方法,這是一個(gè)開(kāi)始進(jìn)行工作的好地方。
嗨,Scripting Guy!是否可以使用腳本來(lái)修改計(jì)算機(jī)上屏幕保護(hù)的等待時(shí)間長(zhǎng)度?
-- JN
答:
嗨,JN。出于某些原因,Microsoft 的腳本技術(shù)在涉及 Windows 設(shè)置和組件方面有些不足,例如屏幕保護(hù)、墻紙、任務(wù)欄和開(kāi)始菜單等等。您可以使用 WMI(尤其是 Win32_Desktop 類)來(lái)讀取這些值,但不能使用 Win32_Desktop 類(或是任何等價(jià)的類或?qū)ο螅﹣?lái)修改這些值。為什么呢?老實(shí)說(shuō),我們也不知道;
幸好,這些值大都存儲(chǔ)在 Windows 注冊(cè)表中,而只要這些值存儲(chǔ)在注冊(cè)表中,您就可以編寫(xiě)腳本來(lái)管理它們。屏幕保護(hù)程序也不例外。打開(kāi) Regedit,讓我們來(lái)看看 HKEY_CURRENT_USER 內(nèi)部;在 Control Panel\Desktop 項(xiàng)中,您將會(huì)看到幾個(gè)與屏幕保護(hù)程序有關(guān)的注冊(cè)表值,包括 ScreenSaveTimeout。您可能猜到了,這就是確定屏幕保護(hù)等待的時(shí)間長(zhǎng)度的注冊(cè)表值。默認(rèn)情況下,這個(gè)值被設(shè)置為 600 秒,也就是 10 分鐘。
那么,如何更改這個(gè)值呢?通過(guò)使用如下的腳本可以將等待時(shí)間更改為 5 分鐘(300 秒):
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
為了達(dá)到這個(gè)目的,我們首先創(chuàng)建一個(gè)名為 HKEY_CURRENT_USER 的常量,并將它的值設(shè)置為 &H80000001;這告訴 WMI 的注冊(cè)表提供程序,我們正在處理注冊(cè)表的 HKEY_CURRENT_USER 部分。如果我們要處理 HKEY_LOCAL_MACHINE,那么我們就需要將常量設(shè)置為 &H80000001;將常量設(shè)置為 &H80000003 則可以處理 HKEY_USERS。
由于我們?cè)诒镜赜?jì)算機(jī)上執(zhí)行這個(gè)腳本,因此我們將變量 strComputer 設(shè)置為點(diǎn)(在 WMI 中表示本地計(jì)算機(jī)的快捷方式)。注冊(cè)表提供程序的出色之處在于,它可以在遠(yuǎn)程計(jì)算機(jī)上工作,并且性能和在本地計(jì)算機(jī)上一樣好。因此如果您希望更改遠(yuǎn)程計(jì)算機(jī)上的屏幕保護(hù)等待時(shí)間,只需將 strComputer 的值設(shè)置為那臺(tái)計(jì)算機(jī)的名稱即可。
從此時(shí)開(kāi)始,我們連接到 WMI 服務(wù),并指定注冊(cè)表路徑 (Control Panel\Desktop)。接下來(lái)我們將調(diào)用 CreateKey 方法。這是為了保險(xiǎn)起見(jiàn)。因?yàn)槿绻覀儾檎业淖?cè)表項(xiàng)不存在,則 CreateKey 就會(huì)創(chuàng)建這個(gè)注冊(cè)表項(xiàng)。如果注冊(cè)表項(xiàng)已經(jīng)存在,那么 CreateKey 將會(huì)保留這個(gè)注冊(cè)表項(xiàng)。
在指定要更改的注冊(cè)表值名稱 (ScreenSaveTimeout) 以及新值 (300) 之后,接下來(lái)我們使用 SetStringValue 方法來(lái)將等待時(shí)間更改為 300 秒。
還不算太壞,是吧?有關(guān)注冊(cè)表提供程序——可能是所有 WMI 提供程序中最不常用的一個(gè)了——的更多信息,請(qǐng)參閱“Microsoft Windows 2000 腳本指南”中的 “注冊(cè)表”一章。并訪問(wèn)聲名不佳的Tweakomatic,這個(gè)令人驚奇的實(shí)用工具可以編寫(xiě)可對(duì)注冊(cè)表進(jìn)行讀寫(xiě)操作的腳本。為了從傳統(tǒng)商業(yè)中沾光,它使用了 Tweakomatic 的名字,這的確大有好處。
順便提及,以下是另一個(gè)比較有用的屏幕保護(hù)程序腳本,這個(gè)腳本可以確保屏幕保護(hù)程序受到密碼保護(hù):
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
你看,注冊(cè)表腳本編寫(xiě)多么有趣?!Tweakomatic 還有其他腳本可以用來(lái)管理屏幕保護(hù)程序、開(kāi)始菜單、任務(wù)欄、Windows 資源管理器文件夾設(shè)置以及更多內(nèi)容。如果您正在尋找管理常見(jiàn)桌面設(shè)置的方法,這是一個(gè)開(kāi)始進(jìn)行工作的好地方。
相關(guān)文章
可以定時(shí)自動(dòng)關(guān)機(jī)的vbs腳本
可以定時(shí)自動(dòng)關(guān)機(jī)的vbs腳本...2007-02-02vbscript Registry 注冊(cè)表操作實(shí)現(xiàn)代碼(讀寫(xiě)刪除)
vbscript Registry 注冊(cè)表操作實(shí)現(xiàn)代碼(讀寫(xiě)刪除)功能代碼,需要的朋友可以參考下。2011-12-12VBS腳本實(shí)現(xiàn)遍歷批量替換多目錄多文件內(nèi)容的代碼
這篇文章主要介紹了VBS腳本實(shí)現(xiàn)遍歷批量替換多目錄多文件內(nèi)容的代碼,主要是結(jié)合了bat,實(shí)現(xiàn)這種效果,需要的朋友可以參考一下2018-12-12