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

VBScript
一个实现VBS倒计时的代码
用vbs实现将剪切板的unix格式的内容处理成pc格式的代码
用vb和vbs 破解flashxp的密码的代码
用VBS实现的批量gb2312转utf-8,支持拖动
用vbs实现的XP序列号替换器
VBS可以做什么的简单说明
用vbs实现cmd功能的代码
VBS基础编程教程 (第1篇)
VBS基础编程教程 (第3篇)
VBS基础编程教程 (第4篇)
VBS基础编程教程 (第5篇)
VBS基础编程教程 (第6篇)
利用vbscript的for命令实现定时关机
在桌面右下角出现温馨提示的vbs冒泡程序
利用VBS发送邮件 挑选速度快的肉鸡做VPN 的vbs代码
vbs教程 chm下载
用vbs实现的简单的服务器文件备份办法压缩文件名自动按日期命名
输入mdb数据库即可将打包的mdb文件解包
VBS编程教程第一部
vbs脚本 加密 几个小细节小结下

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 211 ::
收藏到网摘: 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 资源管理器文件夹设置以及更多内容。如果您正在寻找管理常见桌面设置的方法,这是一个开始进行工作的好地方。