标题: 快速定位注册表→VBS版
[打印本页]
作者: baomaboy
时间: 2007-4-13 16:29
标题: 快速定位注册表→VBS版
为了方便易用做成VBS版,添加到“网上邻居”右键菜单。
使用方法为:自动取得剪贴版内的注册表路径打开注册表定位。
快速注册表定位
①LastKey方法实现定位。
②由于网络中大量存在简写,自动转换HKCU→HKEY_CURRENT_USER
③若取得剪贴板中路径格式正确则无提示直达路径中最末有效路径。
④若取得剪贴板中路径为空或者路径格式错误则提示手动输入路径。
[
Last edited by baomaboy on 2007-4-14 at 04:13 AM ]
作者: baomaboy
时间: 2007-4-13 16:30
标题: 快速定位注册表
Quote: |
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 ]
作者: baomaboy
时间: 2007-4-13 16:36
下面用于试验:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
上面极易复制末尾的空格,所以代码中应加一句过滤掉首尾处的空格。
呵呵 原来不只是空格 连回车换行都有.......
[
Last edited by baomaboy on 2007-4-14 at 04:04 AM ]
作者: r5288665
时间: 2007-4-13 18:14
真的很难懂。。。。。
看不明白,楼主好厉害啊。
作者: kich
时间: 2007-4-14 00:22
baomaboy强,我们跟在后面多学习!
纵观baomaboy的VBS,基本上分两类:注册表+文件(夹)操作!!
作者: baomaboy
时间: 2007-4-14 04:09
Quote: |
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 ]
作者: eech
时间: 2007-4-24 01:43
下了。用过。还可以。但还是觉的麻烦。要是在任意文件上点击。可打开这“定位注册表”会更方便一些
作者: baomaboy
时间: 2007-4-24 03:11
Quote: |
Originally posted by eech at 2007-4-24 01:43:
下了。用过。还可以。但还是觉的麻烦。要是在任意文件上点击。可打开这“定位注册表”会更方便一些 |
|
定位注册表应该并不是很频繁的操作,所以为了精简“文件夹”和“文件”的右键菜单才安装到“网上邻居”的右键的,
改下注册表路径很简单就能安装在“文件”的右键中了,
HKEY_CLASSES_ROOT\*\shell\
作者: zhuangtugou
时间: 2007-5-7 00:26
这个很 好啊
太厉害了
值得学习啊
作者: eech
时间: 2007-5-9 16:46
能不能做到一复制到剪切板就自动打开
作者: baomaboy
时间: 2007-5-9 17:06
Quote: |
Originally posted by eech at 2007-5-9 16:46:
能不能做到一复制到剪切板就自动打开 |
|
能做到,用个VBS常驻进程,没隔1,2秒判断是否为空即可,但要考虑后果,我相信用不了两天你就烦了,剪贴板操作多了,能有几次是专为定位注册表啊。
作者: baomaboy
时间: 2007-5-9 17:10
另外“开始菜单”本身就是个文件夹,把网上邻居换文件夹就行了。那样确实方便了些不用每次返回桌面了。
作者: eech
时间: 2007-5-9 18:49
谢谢自己搞掂了
作者: moto88
时间: 2007-5-16 16:51
直接入注册表好过
作者: baomaboy
时间: 2007-5-16 19:01
Quote: |
Originally posted by moto88 at 2007-5-16 16:51:
直接入注册表好过 |
|
请说普通话!
作者: chenjide
时间: 2007-7-10 20:30
测试过了,的确是好东东!
但是遇到了些问题,
在没有复制路径到剪切板的前提下,右键定位会打不开注册表(无反应),建议直接打开注册表
作者: yjq635
时间: 2007-7-26 00:48
我觉得还是热键比较好用,,建一快捷方式,,指定热键,,其中快捷方式和热键都可以根据自己的需要更改,,不是跟好??