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

VBScript
vbs 列出该目录下所有文件和文件夹的类型,大小,和所有者
雷客图 站长安全助手 vbs版代码(asp 木马查找)
discuz 任意管理员密码漏洞利用工具 vbs代码
添加网站到安全站点.设置安全站点打开ActiveX时提示.去页眉页脚的vbs代码
文件夹定时自动备份 AutoBackUpFolder.vbs
iis PHP安装脚本 PHPInstall.vbs V3.1
HTA文件去除html控件认证和接收命令行参数
vbs 更改环境变量
excel2access vbs脚本
VBS 下载方法(CDO.MESSAGE)
vbs实现myipneighbors 域名查询结果整理
修改 Gateway和DNS的vbs脚本
VBS sendkeys 模拟击键操作 问题解决
用vbscript来添加ip策略 自动封IP
vbs,hta中选择文件夹对话框实现代码
WMI 脚本高手不完全手册
vbscript语句中“&H”专用于16进制数表示
URL 筛选小工具 提取网页中的链接地址
VBScript 文件操作代码小结
vbs 错误捕获器,用于捕获内部错误并进行手工处理

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


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