如何用VBS把当前路径写入注册表的指定位置?

如何用VBS把当前路径写入注册表的指定位置?当前路径不定,根据.vbs在哪里就是哪里!请高手指点!
已经知道如何获取当前路径:Set WshShell=Wscript.CreateObject("Wscript.Shell")
Set WshSysEnv=WshShell.Environment("Process")
WshSysEnv.Item("SYSTEMROOT")
已经知道如何将固定的地址写入注册表。
OperationRegistry.RegWrite "HKCR\Cdsc\Path","××××\Show.VBS"
感谢!
这次是系统目录(就是C:\windows,D:\windows。。。),想知道任意的目录的脚本!比如好多游戏的绿色脚本!
感谢hsjzfling!我现在有两个脚本:自动解压到SYSTEMROOT里面,执行install.vbs,写入注册表信息,其中地址中的文件是一个固定的Show.VBS脚本文件。用你的脚本,写入的是文件名字是install.vbs。把那个改一下就搞定了,再指点一下,我的悬赏就属于你了!谢谢!还望多多指教!
上面的XXXX表示该install.VBS脚本的目录!

感谢”天罡☆紫剑“,你的理解是正确的,本人初入vbs,好多都不是很懂,很好奇,想动手!但是好多高手都不屑于回答!希望您能多多指教哟!给您再+分30分,以示感谢!

阁下的问题和问题补充说得有点朦胧……
我是这样理解的:
阁下有两个vbs脚本,这两个脚本在同一个文件夹内(根目录相同),一个名为"install.vbs",一个名为"Show.vbs",阁下想达到的功能是:
运行install.vbs这个脚本后,将其同一根目录下的"Show.vbs"脚本文件的绝对路径写入到注册表"HKCR\Cdsc\"子项下"Path"这个值项下……
不知道我理解的对不对?如果是这样的话,获取脚本当前的工作目录的完整路径的方法有很多,我写个简单的给你,代码如下:

On Error Resume Next '跳过错误
Dim WshShell
'声明对象
Set WshShell = CreateObject("Wscript.Shell")
'建立对象
Show_VBS_Path = Chr(34) & WshShell.CurrentDirectory & "\Show.vbs" & Chr(34)
'获取脚本install.vbs的当前工作目录的完整路径,然后合并Show.vbs的文件名到这个路径下,从而得到Show.vbs当前的绝对路径,将这一路径保持在变量Show_VBS_Path中
WshShell.RegWrite "HKCR\Cdsc\Path",Show_VBS_Path,"REG_SZ"
'将Show.vbs的绝对路径写入注册表"HKCR\Cdsc\Path"下
Set WshShell = Nothing '清空对象
Wscript.Quit '退出脚本

顺便说两句题外话,如果对你的要完成的功能我理解正确的话,这套几句代码就能帮你实现,但是阁下的脚本实现此功能的机制不够周全!因为当"install.vbs"和"Show.vbs"在同一目录下时这样写当然是完全没问题的,但是如果是写给别人用的话,那就不够严谨了,因为有些好事的用户说不定就把这两个脚本文件移动到了不同的目录下也说不定!这时脚本写入到注册表里"Show.vbs"的绝对路径就是错的了,因为"Show.vbs"有可能已经被用户移到别的路径下了!
解决这一漏洞的方法是:可以通过FileSystemObject对象的CreateTextFile方法在当前工作目录下生成Show.vbs这个脚本,通过WriteLine方法来写Show.vbs中的代码.
虽然这样写很麻烦,但脚本的严谨性会大大提高!

呵呵~~希望我理解的是正确的!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-11
获取当前路径的方法不对啊。。。你那个是获取系统根目录,而且你所谓的知道也仅仅只是在网上找到了一句代码,并不是真正的理解吧。。。
vbs完整代码如下:
Set WshShell=Wscript.CreateObject("Wscript.Shell")WshShell.RegWrite "HKCR\Cdsc\Path", WScript.ScriptFullName

其中"HKCR\Cdsc\Path"修改为你要写入的注册表中指定完整路径
相似回答