Dim AutoRunProgram 声明变量
Set AutoRunProgram = WScript.CreateObject("WScript.shell")
RegPath ="HKLM\Software\Microsoft\Windows\CurrentVersion\Run\"这是开机启动的注册表地址
Type_Name = "REG_SZ" 这是注册表中的数据类型
Key_Name = "****" 这里是存入注册表的键值名称,用你需要开机启动的程序的名字
Key_data = "C:\******.vbs"这里是需要开机启动的程序的具体路径
AutorunProgram.RegWrite regpath&Key_Name,Key_data,Type_Name
阁下的问题和问题补充说得有点朦胧……我是这样理解的:
阁下有两个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中的代码.
虽然这样写很麻烦,但脚本的严谨性会大大提高!
呵呵~~希望我理解的是正确的!
导入注册表文件用: regedit /s 注册表文件.reg bat写注册表: reg add 项 /v 名称 /t 类型 /d 值 /f vbs写注册表:CreateObject("Wscript.Shell").RegWrite 项和名称,值,类型欢迎分享,转载请注明来源:内存溢出
评论列表(0条)