当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 用vbscript实现修改屏幕保护的等待时间长度

VBScript
用vbs脚本来关闭 HTML 页面的代码
用vbs实现确定是否安装了某个特定的补丁
用vbs确定用户的登录名的代码
用vbs找到映射到共享的所有驱动器并重新映射它们
可以从一台远程服务器运行 SP2 安装程序Install.vbs
用vbs判断一个日期是否在指定的时段内
vbs+hta中实现在单个 onClick 参数中包括多个子例程的代码
vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?
用vbs实现对文本文件中的项计数
用vbs对文本文件的内容进行排序
用vbscript把 Word 文档保存为文本文件的代码
用vbs返回 Internet Explorer 的下载控件和 Applet 的列表
用vbscript合并多个文本文件的代码
用vbscript防止本地用户更改其密码
用vbs针对一个 IP 地址范围运行脚本
用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
使用vbscript脚本在表单中进行选择的代码
一个把任何文件转成批处理的vbs脚本Any2Bat.vbs
windows脚本调试howto的方法
注册表的禁用与解锁方法集合

VBScript 中的 用vbscript实现修改屏幕保护的等待时间长度


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 199 ::
收藏到网摘: n/a

问:
嗨,Scripting Guy!是否可以使用脚本来修改计算机上屏幕保护的等待时间长度?
-- JN
答:
嗨,JN。出于某些原因,Microsoft 的脚本技术在涉及 Windows 设置和组件方面有些不足,例如屏幕保护、墙纸、任务栏和开始菜单等等。您可以使用 WMI(尤其是 Win32_Desktop 类)来读取这些值,但不能使用 Win32_Desktop 类(或是任何等价的类或对象)来修改这些值。为什么呢?老实说,我们也不知道;
幸好,这些值大都存储在 Windows 注册表中,而只要这些值存储在注册表中,您就可以编写脚本来管理它们。屏幕保护程序也不例外。打开 Regedit,让我们来看看 HKEY_CURRENT_USER 内部;在 Control Panel\Desktop 项中,您将会看到几个与屏幕保护程序有关的注册表值,包括 ScreenSaveTimeout。您可能猜到了,这就是确定屏幕保护等待的时间长度的注册表值。默认情况下,这个值被设置为 600 秒,也就是 10 分钟。
那么,如何更改这个值呢?通过使用如下的脚本可以将等待时间更改为 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
为了达到这个目的,我们首先创建一个名为 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 资源管理器文件夹设置以及更多内容。如果您正在寻找管理常见桌面设置的方法,这是一个开始进行工作的好地方。