当前位置: 首页 > 图文教程 > 脚本技术 > 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 中的 如何使用脚本锁定任务栏?


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

复制代码 代码如下:

HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
ValueName = "TaskBarSizeMove"
dwValue = 0
objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValue

事实证明,通过切换注册表中的一个值就可以锁定或者解除锁定任务栏;更确切地说,就是通过切换注册表值 Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskBarSizeMove。将该值设置为 0 即可锁定任务栏;将其设置为 1 就可解除锁定任务栏。正如您可能预想的那样,要锁定任务栏,我们的脚本只需将 TaskBarSizeMove 的值设置为 0 就万事大吉了。
要实现该功能,该脚本首先要定义一个名为 HKEY_CURRENT_USER 的常量,并将其值设置为 &H80000001;我们将使用这个常量来指示脚本要处理哪个注册表配置单元。(锁定和解除锁定任务栏均是针对单个用户完成的。)然后,我们利用以下两行代码连接到本地计算机上的 WMI 服务:
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
不过不用担心;您并不仅限于在本机上运行该脚本。而是很容易就可以对该脚本进行修改,以在远程计算机环境下运行。为此,只需将计算机的名称赋值给变量 strComputer 即可。例如,下面的代码会绑定到名为 atl-ws-01 的计算机上的 WMI 服务:
strComputer = "atl-ws-01"
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
这会比往返于各办公室并手动锁定 300 到 400 台计算机上的任务栏更轻松吗?我们不能确切地下这种结论,但它听起来的确要轻松些,不是吗?
在连接到 WMI 服务后,可将注册表路径 (Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced) 赋值给一个名为 strKeyPath 的变量。然后再将我们要更改的实际的注册表值 (TaskBarSizeMove) 赋值给一个名为 ValueName 的变量。最后,再将值 0 赋值给一个名为 dwValue 的变量。该变量代表了我们要赋值给 TaskBarSizeMove 的值。
注意:如果我们想解除锁定任务栏而不是想对其进行锁定怎么办?没问题;只需将值 1 赋值给 dwValue 即可。

现在我们所要做的就是调用 SetDWORDValue 方法,将常量 HKEY_CURRENT_USER 和变量 strKeyPath、ValueName 及 dwValue 作为参数传递:
objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, ValueName, dwValue
这样就大功告成了,但您可能必须先注销,然后再次登录,此更改才能真正生效。因此,您可能想要将该代码添加到注销脚本;这样当用户注销时,更改就会自动生效。用户下次登录时,任务栏将会被锁定。
我们的脚本专家是多么迫切地希望他在 10 年前就会编写出这样的脚本。当然,即使这样,他也仍必须将该脚本复制到一张软盘上,然后随身带着这张软盘往返于各办公室。此外,那时既没有 Windows Script Host 也没有 WMI,因此运行该脚本还是有一些难度。但这些只是一些琐碎的事情,我们的脚本专家必然会找到一个避开这类小问题的方法。