首页 > 范文大全 > 正文

打造VBS版的系统“优化大师”

开篇:润墨网以专业的文秘视角,为您筛选了一篇打造VBS版的系统“优化大师”范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

本文可以学到

1 编制带交互界面形式的vbs脚本

2 VBS中对注册表的控制

3 注册表主键缩写的小知识

Just Do It!

限于篇幅,本文实例只讲了如何隐藏分区。有兴趣的朋友可以为它再添加功能,让它支持找回隐藏分区。其中的技术关键,就在于对注册表键“NoDrives”的创建(隐藏)和删除(显示)。

缘起

自从VBS快餐店在CFan第15期上开张后,店里的生意越来越红火,掌柜的赚了个盆满钵翻自然笑得合不拢嘴,店小二也赢得了“厨房程序员”的美誉。然而树大招风,这天只见一相当彪悍的大汉过来踢“店”了。

约战

店小二忙迎了上去:“客官,想要点什么?”“听说你会一点VBS,就敢自称程序员。”“不敢,那是大家伙对我的抬爱。请教阁下,什么才是真正的程序员呢?”“我觉得起码得会用VB、VC、JAVA等工具开发的人才能称为程序员吧,VBS充其量也就是一脚本语言。”“大侠,如此说来就不对了,你用VC、JAVA编制出来的程序代码,对计算机来说是一个指令序列,说白了也不过就是脚本而已。”

“你别嘴硬,你用VBS能制作出类似系统优化大师的软件来吗?”

“这类软件的许多功能实际上就是修改注册表,用VBS也不是没有可能,而且同样可以制作出带图形界面的程序来。”

亮剑

当下,店小二开机进入Windows XP系统,打开记事本输入以下内容(单引号及其后面的内容为程序注释,可以不输入):

Option Explicit '强制变量声明

Dim Input,XuanZe,TiShi '定义三个变量

XuanZe= InputBox("请输入您要隐藏的磁盘的盘符,……(省略部分见图)", "磁盘隐藏程序" ) '定义“隐藏磁盘程序”主界面

TiShi="您已经成功修改设置!! ^_^!!" '修改完注册表后的提示信息

If XuanZe="c" Then '定义当您隐藏C盘时要输入的选项c

Dim C

Set C=CreateObject("WScript.Shell")

C.RegWrite"HKCU\Software\Microsoft\Windows\CurrentVersionPoliciesExplorer

NoDrives","00000004","REG_DWORD" '导入注册表的内容

ElseIf XuanZe="d" Then '定义当您隐藏D盘时要输入的选项d

Dim D

Set D=CreateObject("WScript.Shell")

D.RegWrite"HKCU\Software\Microsoft\Windows\CurrentVersion

PoliciesExplorerNoDrives","00000008","REG_DWORD" '导入注册表的内容

ElseIf XuanZe="e" Then '定义当您隐藏E盘时要输入的选项e

Dim E

Set E=CreateObject("WScript.Shell")

E.RegWrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies

ExplorerNoDrives","00000016","REG_DWORD" '导入注册表的内容

Else

MsgBox"您没有输入选择或者选择错误!!!",48,"温馨提示"'当您选项输入错误或没有输入时弹出提示窗口

Wscript.Quit '退出脚本

End If

MsgBox TiShi,64,"温馨提示" '修改完注册表弹出的提示窗口

将以上内容保存为“VBS版注册表修改器.vbs”,双击运行后即可看到如图所示界面。这时如在文本框中输入“d”(小写,不含引号),确定后重启计算机(或注销),可以看到D盘已被隐藏。

结局

店小二刚一亮剑,便赢得店中食客们的叫好声。不过来踢店的大汉有点不屑:“你不觉得这功能太弱了么?”

“你说得没错。不过上面我只是演示了VBS脚本的一种可能性,在这个基础上你可以尽情扩展此程序的功能。比如:找回被隐藏的分区、禁用/启用USB设备、清理系统垃圾等等,只有你想不到,没有做不到。”

来踢店的大汉一时语塞,悻悻然离店而去了。

本文相关小提示

因为涉及注册表操作,安全起见,在运行测试脚本之前,一定要先备份好注册表。

在VBS脚本中,注册表主键可以用缩略形式来表示,一般规律为:HK加后面单词的首字母。如上面脚本中的HKCU,表示的是主键“HKEY_CURRENT_USER”,这样就方便多了。

注册表类型,如“REG_DWORD”,英文字母必须全部大写,否则会出错。

除了上面我们用到的RegWrite方法可以写入注册表外,还可以通过RegRead方法读注册表,通过RegDelete方法删除指定注册表键等。