中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-19 19:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 快速定位注册表→VBS版 查看 3,094 回复 16
楼 主 快速定位注册表→VBS版 发表于 2007-04-13 16:29 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
为了方便易用做成VBS版,添加到“网上邻居”右键菜单。
使用方法为:自动取得剪贴版内的注册表路径打开注册表定位。

快速注册表定位




①LastKey方法实现定位。
②由于网络中大量存在简写,自动转换HKCU→HKEY_CURRENT_USER
③若取得剪贴板中路径格式正确则无提示直达路径中最末有效路径。
④若取得剪贴板中路径为空或者路径格式错误则提示手动输入路径。

[ Last edited by baomaboy on 2007-4-14 at 04:13 AM ]
2 快速定位注册表 发表于 2007-04-13 16:30 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线

Dim WshSHell,FSO
On Error Resume Next
Set WshSHell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WinVer = WshSHell.Environment("Process")
Set Args = WScript.Arguments
CloseTime = 5
FileName = WScript.ScriptName
FileFullName = WScript.ScriptFullName
FilePath = FSO.GetParentFolderName(FileFullName)
InsPath = FSO.GetSpecialFolder(1)'''0=windows,1=system32,2=user-Temp,
InsFullName = FSO.BuildPath(InsPath ,FileName)
Copyright="玲珑科技"
QQ="QQ:25926183"
Email="Email:fty1995@163.com"
InsTitle="快速定位注册表"
InsAnswer="快速定位注册表"
RegPath1="HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\shell\QuickTo_Registry\"
RegValue1="定位注册表(&Q)"
RegForm1="REG_SZ"
RegPath2="HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\shell\QuickTo_Registry\command\"
RegValue2="wscript.exe "&InsFullName
RegForm2="REG_SZ"
IF FileFullName <> InsFullName then
intAnswer = MsgBox("【是】将“"+ InsAnswer +"”加入到网上邻居右键菜单,"&Chr(10)&Chr(10)&"【否】将“"+ InsAnswer +"”从网上邻居右键菜单删除。 ", vbQuestion + vbYesNoCancel, "安装 - "+ InsTitle +" - "+ Copyright)
If intAnswer = vbYes Then
WshSHell.RegWrite RegPath1,RegValue1,RegForm1
WshSHell.RegWrite RegPath2,RegValue2,RegForm2
FSO.GetFile(FileFullName).Copy(InsFullName)
WshSHell.popup _
"添加脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"添加注册表项:"+chr(10)+chr(34)+ RegPath1 +chr(34)+chr(10)+ _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "安装成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
end if
If intAnswer = vbNo Then
WshSHell.RegDelete RegPath2
WshSHell.RegDelete RegPath1
FSO.DeleteFile InsFullName
WshSHell.popup _
"删除脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"删除注册表项:"+chr(10)+chr(34)+ RegPath1 +chr(34)+chr(10)+ _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "卸载成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
End If
If intAnswer = vbCancel Then
end if
ELSE
Key_DataStr=UCase(CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
Key_DataStr = Trim(Key_DataStr)''网页中复制时首尾极易有多余的空格,去除。
Key_DataStr=Replace(Key_DataStr,chr(10),"")''换行和回车有时不同时存在,所以分别替换。
Key_DataStr=Replace(Key_DataStr,chr(13),"")
if Left(Key_DataStr,2)="HK" then
if Right(Key_DataStr,1)="\" then
Key_DataStr=Left(Key_DataStr,Len(Key_DataStr)-1)
end if
Key_Data=Key_DataStr
else
Key_Data=Inputbox(vbcrlf & "由于剪贴板中的路径无效," & vbcrlf & vbcrlf & "请手工输入你要去的路径:","输入注册表路径-快速定位注册表",Key_DataStr)
end if
If Key_Data=False Then WScript.Quit
Key_Data=Replace(Key_Data,"HKCR","HKEY_CLASSES_ROOT")''转换根键的简写。
Key_Data=Replace(Key_Data,"HKCU","HKEY_CURRENT_USER")
Key_Data=Replace(Key_Data,"HKLM","HKEY_LOCAL_MACHINE")
Key_Data=Replace(Key_Data,"HKU","HKEY_USERS")
Key_Data=Replace(Key_Data,"HKCC","HKEY_CURRENT_CONFIG")
Key_Data=Replace(Key_Data,"\\","\")''如果是REG文件内容,替换其中的双“\”符号。
Call LastKey
end if
Set WshSHell = Nothing
Set FSO = Nothing
Set Args = Nothing
WScript.Quit(0)
Sub LastKey()
RegLPath="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\LastKey"
RegLForm="REG_SZ"
WshSHell.RegWrite RegLPath ,"我的电脑\" & Key_Data,RegLForm
WshSHell.Run("Regedit")
End Sub

ÿ

[ Last edited by baomaboy on 2008-3-24 at 10:14 PM ]
3 发表于 2007-04-13 16:36 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
下面用于试验:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

上面极易复制末尾的空格,所以代码中应加一句过滤掉首尾处的空格。

呵呵 原来不只是空格 连回车换行都有.......

[ Last edited by baomaboy on 2007-4-14 at 04:04 AM ]
4 发表于 2007-04-13 18:14 ·  中国 上海 徐汇区 电信
新手上路
积分 15
发帖 7
注册 2006-12-28 21:59
19年会员
UID 74844
性别 男
状态 离线
真的很难懂。。。。。

看不明白,楼主好厉害啊。
5 发表于 2007-04-14 00:22 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 397
发帖 168
注册 2006-10-08 10:07
19年会员
UID 64934
状态 离线
baomaboy强,我们跟在后面多学习!

纵观baomaboy的VBS,基本上分两类:注册表+文件(夹)操作!!
6 发表于 2007-04-14 04:09 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
Originally posted by kich at 2007-4-14 00:22:
baomaboy强,我们跟在后面多学习!

纵观baomaboy的VBS,基本上分两类:注册表+文件(夹)操作!!


谢谢谢谢kich 我的电脑里除了文件夹和文件没有别的了 呵呵 只能操作操作它们俩了 ^_^

[ Last edited by baomaboy on 2007-4-14 at 04:15 AM ]
7 发表于 2007-04-24 01:43 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 906
发帖 346
注册 2006-07-10 09:58
19年会员
UID 58334
性别 男
状态 离线
下了。用过。还可以。但还是觉的麻烦。要是在任意文件上点击。可打开这“定位注册表”会更方便一些
8 发表于 2007-04-24 03:11 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
Originally posted by eech at 2007-4-24 01:43:
下了。用过。还可以。但还是觉的麻烦。要是在任意文件上点击。可打开这“定位注册表”会更方便一些


定位注册表应该并不是很频繁的操作,所以为了精简“文件夹”和“文件”的右键菜单才安装到“网上邻居”的右键的,
改下注册表路径很简单就能安装在“文件”的右键中了,
HKEY_CLASSES_ROOT\*\shell\
9 发表于 2007-05-07 00:26 ·  中国 福建 福州 电信
新手上路
积分 12
发帖 5
注册 2007-05-06 14:00
19年会员
UID 87659
性别 男
状态 离线
这个很 好啊
太厉害了
值得学习啊
10 发表于 2007-05-09 16:46 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 906
发帖 346
注册 2006-07-10 09:58
19年会员
UID 58334
性别 男
状态 离线
能不能做到一复制到剪切板就自动打开
11 发表于 2007-05-09 17:06 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
Originally posted by eech at 2007-5-9 16:46:
能不能做到一复制到剪切板就自动打开


能做到,用个VBS常驻进程,没隔1,2秒判断是否为空即可,但要考虑后果,我相信用不了两天你就烦了,剪贴板操作多了,能有几次是专为定位注册表啊。
12 发表于 2007-05-09 17:10 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
另外“开始菜单”本身就是个文件夹,把网上邻居换文件夹就行了。那样确实方便了些不用每次返回桌面了。
13 发表于 2007-05-09 18:49 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 906
发帖 346
注册 2006-07-10 09:58
19年会员
UID 58334
性别 男
状态 离线
谢谢自己搞掂了
14 发表于 2007-05-16 16:51 ·  中国 广东 肇庆 电信
新手上路
积分 4
发帖 11
注册 2006-06-20 19:51
19年会员
UID 57321
状态 离线
直接入注册表好过
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
baomaboy -15 2007-05-16 19:02
chengbiner -2 2007-08-08 16:36
15 发表于 2007-05-16 19:01 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
20年会员
UID 48180
性别 男
状态 离线
Originally posted by moto88 at 2007-5-16 16:51:
直接入注册表好过



请说普通话!
论坛跳转: