快速业务通道

用vbs检索在运行对话框中键入的一系列命令的代码

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
只是该集合中不包含任何实际命令。要获得这些命令(这是我们的最终目的),我们需要连接到并读取注册表中26个值中的每个值。
我们能这样做吗,我们能很容易地连接到注册表中26个值并读取每一个值吗?当然可以;事实上,这就是以下这段代码所执行的操作:
复制代码 代码如下:

ForEachstrValueinarrValueNames
IfLen(strValue)=1Then
objRegistry.GetStringValueHKEY_CURRENT_USER,strKeyPath,strValue,strRunCommand
intLength=Len(strRunCommand)
strRunCommand=Left(strRunCommand,intLength-2)
Wscript.EchostrRunCommand
EndIf
Next
您说对了:乍一看,它是有点可怕,不是吗?告诉您原因吧,让我们向您介绍一个该ForEach循环的简化版本,然后我再解释为何将一些附加代码添加到此循环中。该简化循环如下:
ForEachstrValueinarrValueNames
objRegistry.GetStringValueHKEY_CURRENT_USER,strKeyPath,strValue,strRunCommand
Wscript.EchostrRunCommand
Next
在此我们所要做的就是建立一个循环,该循环将遍历所有注册表值。要读取其中的每个值,我们只需调用GetStringValue方法:
objRegistry.GetStringValueHKEY_CURRENT_USER,strKeyPath,strValue,strRunCommand
GetStringValue所传递的四个参数:常量HKEY_CURRENT_USER;变量strKeyPath;变量strValue(代表各个值的名称,例如A、B或C);名为strRunCommand的输出参数。通过使用此输出参数,我们只需指定一个变量名称,GetStringValue方法会将注册表值的值(即,相应的“运行”命令)分配给它。调用GetStringValue后,我们将回显strRunCommand,继续循环,并处理集合中的下一个值。
对于该简化的ForEach循环已讲了不少了;而真正的ForEach循环中的所有额外代码又怎样呢?之所以使用额外代码主要是为了可为我们提供稍好些的输出。例如,在RunMRU项中,有一个名为MRUList的注册表值。这并不代表一个实际的命令;而是代表最近使用的命令的先后出现顺序。这对我们而言并不重要(至少今天不重要),因此我们宁愿跳过该MRUList值。这就是下面的代码所要执行的操作:
IfLen(strValue)=1Then
在此行代码中,我们使用Len函数来检查值名称中的字符数。如果字符数(长度)等于1,我们将继续进行并读取该值。如果长度不等于1(显而易见,当MRUList具有7个字符时,就属于这种情况),则我们只需跳过该值并移至集合中的下一项即可。
我们添加的另一小段代码是:
intLength=Len(strRunCommand)
strRunCommand=Left(strRunCommand,intLength-2)
如果您查看注册表,您会发现所有命令的末尾都添加了一个\1。如果需要的话,可将其保留下来,不过很容易将其去掉。我们所要做的是确定命令的长度,然后使用Left函数返回字符串中的第一个x字符。x等于什么?它等于字符总数减2。这就意味着,我们要获取除最后2个字符(即\1)以外的所有字符,并将它们回显到屏幕上。
至此您已实现了您的目的:一个可返回在运行对话框所键入的最近使用的命令的脚本。我们仍不知道神秘的楼梯到底通向哪里,但我们需要先做重要的事情。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号