用vbs检索在运行对话框中键入的一系列命令的代码
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
问: 您好,脚本专家!有时,我在运行对话框中键入了多个命令,随后想要对其进行检索。我知道我最近使用过的命令缓存在某个地方,因为当我开始在运行对话框中键入时,它们便会显示出来。如何使用脚本检索这些命令? --KJ 答: 您好,KJ。您知道,一看到您的问题,我们首先想到的是:为什么我们没有想过这个问题?不用说,脚本专家使用运行对话框已经有好多年了,并且我们也非常清楚地知道,最近使用的命令(如果您统计过的话,是最近使用过的26个)缓存在计算机上的某个地方。然而,我们从未编写过可检索此列表的脚本。我们怎么能忽略如此明显的事情呢? 注意:事实上,令人吃惊的绝不仅限于我们已忽略了如此明显的事情。例如,到目前为止,脚本专家已在其当前所在的大厦中呆了大约一年的时间了,然而就在几个星期前,编写本专栏的脚本专家才发现有从其办公室通往楼下大厅的楼梯。 稍加摸索后,我们发现该信息存储在注册表中;更确切地说,它作为单个注册表值存储在注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU中。这样不是很好吗?当然很好;毕竟,这使得我们能够编写以下脚本: 复制代码 代码如下: ConstHKEY_CURRENT_USER=&H80000001 strComputer="." SetobjRegistry=GetObject("winmgmts:\\"&strComputer&"\root\default:StdRegProv") strKeyPath="Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" objRegistry.EnumValuesHKEY_CURRENT_USER,strKeyPath,arrValueNames,arrValueTypes ForEachstrValueinarrValueNames IfLen(strValue)=1Then objRegistry.GetStringValueHKEY_CURRENT_USER,strKeyPath,strValue,strRunCommand intLength=Len(strRunCommand) strRunCommand=Left(strRunCommand,intLength-2) Wscript.EchostrRunCommand EndIf Next 注意:我们可使用此相同的脚本来检索远程计算机中最近使用过的命令吗?当然可以;只需将远程计算机的名称分配给变量strComputer即可。 连接到WMI服务后,将值Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU分配给名为strKeyPath的变量。然后使用EnumValues方法来获取RunMRU项中所有注册表值的集合: objRegistry.EnumValuesHKEY_CURRENT_USER,strKeyPath,arrValueNames,arrValueTypes 正如您所看到的那样,我们将四个参数传递给EnumValues: 参数 说明 HKEY_CURRENT_USER 可在其中找到信息的注册表配置单元。 strKeyPath HKCU配置单元中RunMRU项的路径。 arrValueNames 这是一个“输出”参数,用作存储所有注册表值名称的位置。我们所要做的就是为EnumValues提供一个变量名;然后,EnumValues将使用RunMRU中的所有值名称来填充此变量。 arrValueTypes 另一输出参数,此参数含有与RunMRU中找到的每个值相对应的数据类型。这个参数是必需的,但是由于在RunMRU中找到的值的数据类型均为REG_SZ,因此,我们实际上在脚本中并不使用它。 事实证明,在“运行”对话框中键入的每个命令在注册表中都有其对应值;通过使用字母A到Z为这些值分配了名称(这也就解释了为何在注册表中只有26个最近使用的命令被跟踪的原因)。在注册表中,RunMRU如下图所示: 执行EnumValues方法后,我们将返回所有这些值名称的集合;换言之,我们的集合将由字母A到Z组成。非常不错, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于用vbs检索在运行对话框中键入的一系列命令的代码的所有评论