当前位置: 移动技术网 > IT编程>脚本编程>VBScript > 如何使用脚本锁定任务栏?

如何使用脚本锁定任务栏?

2017年12月12日  | 移动技术网IT编程  | 我要评论

郭晓敏年龄,班梦阳和战亚楠,看朱成碧广播剧

复制代码 代码如下:

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,因此运行该脚本还是有一些难度。但这些只是一些琐碎的事情,我们的脚本专家必然会找到一个避开这类小问题的方法。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网