|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『楼 主』:
管理”新建“菜单中的文件类型→VBS版
①删除右键菜单”新建“中的垃圾,如:公文包。
②添加新类型到”新建“菜单中,如:批处理、VBS、或其他。
③支持批量操作,并且可以自定义(删除/添加)批量操作的扩展名。
最初在操作Office系列扩展名时由于其注册表值不在常规位置,所有操作失败,后来修改了下可以操作了,如果还有哪个文件类型(扩展名)不能操作请自行修改注册表,也请您告知我下,谢谢!
目前收集到批量操作的扩展名如下:
将删除:bmp.wav.ais.fla.bbp.psd.rar.zip.bfc.mp3.doc.xls.mdb.ppt.nit.rgs.x3d.ctm.uga.t3d.loc.kpg.sip.aep.nfs.srg.tpc.tbt.smv.rsnp
将添加:txt.reg.inf.bat.vbs.js.ini
Rem 想删除新建菜单中的文件类型则按上面的格式添加到第一行中,只要求格式行号正确可在任意位置插入。
Rem 想添加新建菜单中的文件类型则按上面的格式添加到第二行中,只要求格式行号正确可在任意位置插入。
Rem bfc:Windows的公文包文件
[ Last edited by baomaboy on 2007-3-17 at 06:48 AM ]
此帖被 +12 点积分 点击查看详情 评分人:【 lxmxn 】 | 分数: +10 | 时间:2007-3-17 09:55 | 评分人:【 Wingl83 】 | 分数: +2 | 时间:2008-10-19 13:15 |
|
附件
1: Manage_New.rar (2007-3-17 06:40, 6.79 K,下载次数: 157)
附件
2: 未命名.GIF (2007-3-17 06:40, 5.87 K,下载次数: 15)
|
|
2007-3-17 06:40 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-3-17 06:55 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by vkill at 2007-3-17 06:55:
告诉我注册表的位置在哪那? |
|
通常都在:
HKCR\.扩展名\ShellNew\NullFile
而office系列则在:
HKCR\.doc\Word.Document.8\ShellNew\NullFile
并且由于office版本不同Word.Document.8也不同。
|
|
2007-3-17 07:01 |
|
|
chengbiner
初级用户
积分 105
发帖 44
注册 2006-10-5
状态 离线
|
『第
4 楼』:
那个知道怎么在那有个“新建公文包”啊?
|
|
2007-3-17 11:22 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by chengbiner at 2007-3-17 11:22:
那个知道怎么在那有个“新建公文包”啊? |
|
没看明白你的意思,我理解为你想让新建菜单中出现新建公文包,
添加.bfc就行了。
[ Last edited by baomaboy on 2007-3-17 at 11:30 AM ]
附件
1: 1.GIF (2007-3-17 11:30, 12.88 K,下载次数: 187)
附件
2: 2.GIF (2007-3-17 11:30, 17.66 K,下载次数: 1)
|
|
2007-3-17 11:25 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
6 楼』:
发一下原代码怎么样?
slore的解密代码,我这运行说有错误!!
|
|
2007-4-13 01:38 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
7 楼』:
强烈建议 baomaboy兄;
以后再发布东西的时候不要给源码加密;
也给我们学习一下吗
|
|
2007-4-13 02:21 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by bjsh at 2007-4-13 02:21:
强烈建议 baomaboy兄;
以后再发布东西的时候不要给源码加密;
也给我们学习一下吗 |
|
这个帖子是近一个月前的了 后来发的都是未加密的
|
好多菩提树,好多明镜台。本来好多物,好多的尘埃。 |
|
2007-4-13 03:05 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第
9 楼』:
①由于新建VBS模版的原因,代码中会有多于的代码 (无用代码),更由于我懒而没删除,大家凑合看吧。
②基础差,没好的编码习惯,想到那写到哪,所以可能有捷径的代码我用了很曲折的方法,还是由于懒没有改写。
我的目的就是,可以学习到方法和技巧,并可以使用,至于美化格式,精简代码,等我有时间和精力时也许会那么做 。所以 希望大家不要扔鸡蛋啊 ,最初加密就是怕大家砸我 ^_^。
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)
InsFullName = FSO.BuildPath(InsPath ,FileName)
LnkPathNT = WshSHell.SpecialFolders(2)
LnkPath9X = WshSHell.SpecialFolders(14)
LnkPathAll = WshSHell.SpecialFolders("SendTo")
OtherFileName="Manage_New.txt"
OtherFilePath=FSO.GetSpecialFolder(1)
TemFileName="无标题"
TemFilePath=FSO.GetSpecialFolder(2)
Copyright="玲珑科技"
QQ="QQ:25926183"
Email="Email:fty1995@163.com"
InsTitle="Manage_New"
InsAnswer="添加/删除新建菜单"
RegPath1="HKEY_CLASSES_ROOT\Directory\shell\Manage_New\"
RegValue1="添加/删除新建菜单"
RegForm1="REG_SZ"
RegPath2="HKEY_CLASSES_ROOT\Directory\shell\Manage_New\command\"
RegValue2="wscript.exe "&InsFullName
RegForm2="REG_SZ"
RegPath3="HKEY_CLASSES_ROOT\*\shell\Manage_New\"
RegValue3="添加/删除新建菜单"
RegForm3="REG_SZ"
RegPath4="HKEY_CLASSES_ROOT\*\shell\Manage_New\command\"
RegValue4="wscript.exe "&InsFullName
RegForm4="REG_SZ"
WshSHell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.cpl\Application","control.exe","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,RegForm1
WshSHell.RegWrite RegPath3,RegValue3,RegForm3
WshSHell.RegWrite RegPath4,RegValue4,RegForm4
FSO.GetFile(FileFullName).Copy(InsFullName)
Call Install
WshSHell.popup _
"添加脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"添加注册表项:"+chr(10)+chr(34)+ RegPath3 +chr(34)+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 RegPath4
WshSHell.RegDelete RegPath3
WshSHell.RegDelete RegPath2
WshSHell.RegDelete RegPath1
FSO.DeleteFile InsFullName
WshSHell.popup _
"删除脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"删除注册表项:"+chr(10)+chr(34)+ RegPath3 +chr(34)+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
FileExName=Inputbox("1.添加扩展名到新建:(加‘.’在扩展名前)"&chr(10)&chr(10)&"2.删除扩展名从新建:(没‘.’只输扩展名)"&chr(10)&chr(10)&_
"3.输入‘25926183’可自定义默认的扩展名"&chr(10)&chr(10)&"或执行对全部默认扩展名添加和删除操作。"_
,"输入扩展名 - "&Copyright&" - QQ:25926183","bmp")
if FileExName=chr(50)&chr(53)&chr(57)&chr(50)&chr(54)&chr(49)&chr(56)&chr(51) Then
intAnswer = MsgBox("【是】将对所有自定义扩展名进行删除和添加,"&Chr(10)&Chr(10)&"【否】将打开扩展名自定义文件手工修改保存。", vbQuestion + vbYesNoCancel, "安装 - "+ InsTitle +" - "+ Copyright)
If intAnswer = vbYes Then
Set ReadFile = FSO.OpenTextFile(FSO.BuildPath(OtherFilePath ,OtherFileName), 1)
ReadLineTextFile=ReadFile.ReadLine
ReadFile.Close
DelNameStrc=ReadLineTextFile
n=len(DelNameStrc)
temp=0
for Tem = 1 to n
if mid(DelNameStrc,Tem,1)="." then
temp=temp+1
end if
next
for i= 1 to temp+1
ni=InStrRev(DelNameStrc,".",n)
mrname=mid(DelNameStrc,ni+1,n-ni)
FileExName="."&mrname
PiaoYi=WshSHell.RegRead("HKCR\" & FileExName & "\")
WshSHell.RegDelete "HKCR\" & FileExName & "\"&PiaoYi&"\ShellNew\"
WshSHell.RegDelete "HKCR\" & FileExName & "\ShellNew\"
n=ni-1
next
Set ReadFile = FSO.OpenTextFile(FSO.BuildPath(OtherFilePath ,OtherFileName), 1)
ReadFile.SkipLine
ReadLineTextFile=ReadFile.ReadLine
ReadFile.Close
AddNameStrc=ReadLineTextFile
n=len(AddNameStrc)
temp=0
for Tem = 1 to n
if mid(AddNameStrc,Tem,1)="." then
temp=temp+1
end if
next
for i= 1 to temp+1
ni=InStrRev(AddNameStrc,".",n)
mrname=mid(AddNameStrc,ni+1,n-ni)
FileExName="."&mrname
PiaoYi=WshSHell.RegRead("HKCR\" & FileExName & "\")
WshSHell.RegWrite "HKCR\" & FileExName & "\ShellNew\NullFile","","REG_SZ"
WshSHell.RegWrite "HKCR\" & FileExName & "\"&PiaoYi&"\ShellNew\NullFile","","REG_SZ"
n=ni-1
next
WshShell.popup chr(10) &_
"自动在新建菜单中添加/删除文件类型成功。"+ chr(10) &chr(10)&chr(10) & _
"个别扩展名ShellNew键漂移会操作不成功,则打开注册表手工查找修改。"+ chr(10) &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.Run ("Notepad.exe "&FSO.BuildPath(OtherFilePath ,OtherFileName))
end if
else
If FileExName<>"" Then
if left(FileExName,1)="." then
WshSHell.RegWrite "HKCR\" & FileExName & "\ShellNew\NullFile","","REG_SZ"
PiaoYi=WshSHell.RegRead("HKCR\" & FileExName & "\")
WshSHell.RegWrite "HKCR\" & FileExName & "\"&PiaoYi&"\ShellNew\NullFile","","REG_SZ"
WshShell.popup chr(10) &_
"在新建菜单中添加 ‘ "&FileExName&" ’ 文件成功。"+ chr(10) &chr(10)&chr(10) & _
"个别扩展名ShellNew键漂移会操作不成功,则打开注册表手工查找修改。"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "添加新建菜单文件类型 - "+ InsTitle +" - "+ Copyright, 0 + 64
else
FileExName="."&FileExName
PiaoYi=WshSHell.RegRead("HKCR\" & FileExName & "\")
WshSHell.RegDelete "HKCR\" & FileExName & "\"&PiaoYi&"\ShellNew\"
WshSHell.RegDelete "HKCR\" & FileExName & "\ShellNew\"
WshShell.popup chr(10) &_
"从新建菜单中删除 ‘ "&FileExName&" ’ 文件成功。"+ chr(10) &chr(10)&chr(10) & _
"个别扩展名ShellNew键漂移会操作不成功,则打开注册表手工查找修改。"+ chr(10) &chr(10) & _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C) " + Copyright +" " & QQ &" " + Email _
, CloseTime, "删除新建菜单文件类型 - "+ InsTitle +" - "+ Copyright, 0 + 64
end if
else
end if
end if
End if
Set WshSHell = Nothing
Set FSO = Nothing
Set Args = Nothing
WScript.Quit(0)
Sub Install()
Set NewFile = FSO.CreateTextFile(FSO.BuildPath(OtherFilePath ,OtherFileName), True)
NewFile.WriteLine("bmp.wav.ais.fla.bbp.psd.rar.zip.bfc.mp3.doc.xls.mdb.ppt.nit.rgs.x3d.ctm.uga.t3d.loc.kpg.sip.aep.nfs.srg.tpc.tbt.smv.rsnp")
NewFile.WriteLine("txt.reg.inf.bat.vbs.js.ini")
NewFile.WriteLine("Rem 想删除新建菜单中的文件类型则按上面的格式添加到第一行中,只要求格式行号正确可在任意位置插入。")
NewFile.WriteLine("Rem 想添加新建菜单中的文件类型则按上面的格式添加到第二行中,只要求格式行号正确可在任意位置插入。")
NewFile.WriteLine("Rem bfc:Windows的公文包文件")
NewFile.Close
End Sub |
|
[ Last edited by baomaboy on 2008-3-25 at 12:54 AM ]
此帖被 +4 点积分 点击查看详情 评分人:【 kich 】 | 分数: +2 | 时间:2007-4-13 06:59 | 评分人:【 Wingl83 】 | 分数: +2 | 时间:2008-10-19 13:34 |
|
|
好多菩提树,好多明镜台。本来好多物,好多的尘埃。 |
|
2007-4-13 03:26 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
10 楼』:
谢谢了,今天早上把这个帖翻出来的,因为觉得这个还有很大用的!!Thx
|
|
2007-4-13 07:00 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
|
2007-5-2 16:21 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
12 楼』:
将注册右键部分单独用一个VBS不好么?
|
|
2007-5-2 16:22 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by slore at 2007-5-2 16:22:
将注册右键部分单独用一个VBS不好么? |
|
好啊 结构更合理而且精简了 不过要改我的模版了 呵呵 我又不象slore兄那么强只点拨人(“创建个快捷方式吧,给它赋予热键。。。。) 不发帖。恩,要改,而且不只是这一个,而是我所有的主题帖,不过就不更新帖子了,只能是我硬盘上自己的改,谢谢slore兄的好建议。
|
好多菩提树,好多明镜台。本来好多物,好多的尘埃。 |
|
2007-5-2 16:40 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
14 楼』:
思路是最重要的,所以点下就可以了。。。发代码我懒,但我知道可以一般就不写了。
而且点拨而不发代码,那么写出来的方法就不局限可以有多种方式。。。那样也可以学习了。。
|
|
2007-5-2 17:03 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
|
2007-5-2 17:38 |
|