网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > 注册表
本月文章推荐
.高手支招 详解注册表与系统安全.
.不再费时费力 两招快速定位注册表.
.预防BackDoor的破坏.
.浏览网页注册表被修改之迷及解决.
.禁止更改IE的辅助功能设置.
.给IE加油,IE修改全攻略.
.Windows XP注册表如何查找到可禁.
.专家答疑:清理注册表的6个理由.
.隐藏我的电脑中的驱动器.
.更改"应用程序数据"的文件夹路径.
.bat方式上删除注册表键,项.
.注册表被修改的原因及手工修改解.
.用注册表修改2k/XP默认刷新率.
.自动启动程序的注册表位置.
.输入汉字时自动添加一个空格.
.注册表中的启动项.
.windows注册表预定义主键.
.教你用注册表找回常用软件序列号.
.修改注册表禁止安装软件.
.如何去除WinXP系统动态桌面图标文.

删除右键新建菜单中的多余项目

发表日期:2008-12-4


最近在测试软件,很多软件都喜欢在右键"新建"菜单下添加自己的专用文件格式选项,一圈测试下来,"新建"菜单里臃肿不堪,严重影响了右键的打开速度。
  网上搜索能删除"新建"项目的软件,发现ShowNew不能删除 MS Office 系列的"新建"项目,并且不支持批量删除;ContextEdit 里转了半天,找不到删除的方法——并不是找不到删除选项,而是跑出来的项目太多,居然不提供搜索功能,想删除指定项目还得在成百上千个记录中寻找、定位,太不人性化了。
  翻了一下以前写过的批处理,发现了一个好东西,于是,略做修改,发出来让大家用用。板砖之类的请尽管飞过来~~~

  版本一:把注册表信息放到与批处理同目录的RegBackup文件夹下
复制内容到剪贴板
代码:
@echo off
::   一般情况下,右键"新建"菜单项目对应于注册表"HKEY_CLASSERS_ROORT\.后缀名"
:: 项目下的"ShellNew"键。如果常规模式下删除不了,则把"HKEY_CLASSERS_ROORT\.后缀名"
:: 删除掉即可(注意,可能会有后遗症)。
mode con lines=25
color 1f

:Main
cls
title "新建"菜单项目删除器-删除模式
echo.&echo.&echo.
echo            本程序能删除右键菜单中"新建"项目下的多余内容,为"新建"菜单减肥!
echo.
echo            如果想让某种类型的文件不再出现在鼠标右键的"新建"菜单中,请直接
echo.
echo        输入该文件类型的后缀名。例如:rar。默认使用常规删除模式。
echo.
echo            如果常规删除不起作用,请使用强行删除模式,比如在对付 MS Office
echo.
echo        系列软件在"新建"菜单中的项目的时候。不过,此方式可能会产生后遗症。
echo.
echo            注意:需要点开"新建"菜单两次才能看到删除后的变化!
echo.&echo.
echo    退出请选 0  使用强行删除模式请在最前面添加 1  恢复菜单项目请按 2
echo.&echo.
echo               请输入后缀名(多个后缀名用空格分开):
echo.
set input=
set /p input=                  
if not defined input goto Main
set "input=%input:"=%"
if "%input%"=="0" exit
set ShellNew=ShellNew
if "%input:~0,1%"=="1" (
    set ShellNew=
    set "input=%input:~1%"
)
if "%input%"=="2" goto Repair
md RegBackup 2>nul
for %%i in (%input%) do (
    reg export HKCR\.%%i\%ShellNew% RegBackup\_%%i.reg>nul 2>nul
    if exist RegBackup\_%%i.reg (
        more RegBackup\_%%i.reg>RegBackup\%%i.reg
        echo ; 这是鼠标右键"新建"菜单项目 .%%i 类型的注册表信息,可作恢复之用>>RegBackup\%%i.reg
        del /a /f RegBackup\_%%i.reg>nul 2>nul
        reg delete HKCR\.%%i\%ShellNew% /f >nul 2>nul
    ) else (echo.&echo                %%i 类型没有可供删除的"新建"项目)
)
rd RegBackup 2>nul
echo.&set /p=                  按任意键返回...
goto Main

:Repair
cls
title "新建"菜单项目删除器-恢复模式
echo.&echo.&echo.
echo              本模块只能恢复由本程序删除的右键"新建"菜单项目!
echo.
echo              如果想让某种类型的文件重新出现在鼠标右键的"新建"
echo.
echo          菜单中,请直接输入该文件类型的后缀名。例如:rar。
echo.
echo              注意:需要点开"新建"菜单两次才能看到恢复后的变化!
echo.&echo.
echo                    退出请选 0  返回删除界面请按 1
echo.&echo.
echo                  请输入后缀名(多个后缀名用空格分开):
echo.
set input=
set /p input=                   
if not defined input goto Repair
set "input=%input:"=%"
if "%input%"=="0" exit
if "%input%"=="1" goto Main
if not exist RegBackup (
  echo.&echo              没有可恢复的项目,恢复失败!按任意键返回...
    pause>nul&goto Main
)   
for %%i in (%input%) do (
  reg import RegBackup\%%i.reg>nul 2>nul||(
        echo.&echo                  .%%i 类型恢复失败
    )
)
echo.&set /p=                  按任意键返回...
goto Repair
  版本二:把注册表信息写回注册表,不再保存在当前目录下
复制内容到剪贴板
代码:
@echo off
::   一般情况下,右键"新建"菜单项目对应于注册表"HKEY_CLASSERS_ROORT\.后缀名"
:: 项目下的"ShellNew"键。如果常规模式下删除不了,则把"HKEY_CLASSERS_ROORT\.后缀名"
:: 删除掉即可(注意,可能会有后遗症)。
::    Code by namejm Modified on 2007.9.29~2008.3.17 CMD@XP
mode con lines=25
color 1f

:Main
cls
title "新建"菜单项目删除器-删除模式
echo.&echo.&echo.
echo            本程序能删除右键菜单中"新建"项目下的多余内容,为"新建"菜单减肥!
echo.
echo            如果想让某种类型的文件不再出现在鼠标右键的"新建"菜单中,请直接
echo.
echo        输入该文件类型的后缀名。例如:rar。默认使用常规删除模式。
echo.
echo            如果常规删除不起作用,请使用强行删除模式,比如在对付 MS Office
echo.
echo        系列软件在"新建"菜单中的项目的时候。不过,此方式可能会产生后遗症。
echo.
echo            注意:需要点开"新建"菜单两次才能看到删除后的变化!
echo.&echo.
echo    退出请选 0  使用强行删除模式请在最前面添加 1  恢复菜单项目请按 2
echo.&echo.
echo               请输入后缀名(多个后缀名用空格分开):
echo.
set input=
set /p input=                  
if not defined input goto Main
set "input=%input:"=%"
if "%input%"=="0" exit
set ShellNew=ShellNew
if "%input:~0,1%"=="1" (
    set ShellNew=
    set "input=%input:~1%"
)
if "%input%"=="2" goto Repair
for %%i in (%input%) do (
    reg query HKCR\.%%i\%ShellNew%>nul 2>nul && (
        reg copy HKCR\.%%i\%ShellNew% HKCR\-.%%i\%ShellNew% /f /s >nul 2>nul
        reg delete HKCR\.%%i\%ShellNew% /f >nul 2>nul
    ) || (echo.&echo                %%i 类型没有可供删除的"新建"项目)
)
echo.&set /p=                  按任意键返回...
goto Main
:Repair
cls
title "新建"菜单项目删除器-恢复模式
echo.&echo.&echo.
echo              本模块只能恢复由本程序删除的右键"新建"菜单项目!
echo.
echo              如果想让某种类型的文件重新出现在鼠标右键的"新建"
echo.
echo          菜单中,请直接输入该文件类型的后缀名。例如:rar。
echo.
echo              注意:需要点开"新建"菜单两次才能看到恢复后的变化!
echo.&echo.
echo                    退出请选 0  返回删除界面请按 1
echo.&echo.
echo                  请输入后缀名(多个后缀名用空格分开):
echo.
set input=
set /p input=                   
if not defined input goto Repair
set "input=%input:"=%"
if "%input%"=="0" exit
if "%input%"=="1" goto Main  
for %%i in (%input%) do (
  reg query HKCR\-.%%i\>nul 2>nul && (
        reg copy HKCR\-.%%i HKCR\.%%i /f /s >nul 2>nul
        reg delete HKCR\-.%%i /f>nul 2>nul
    ) || (
        echo.&echo                   没有可供恢复的 .%%i 类型注册表信息
    )
)
echo.&set /p=                  按任意键返回...
goto Repair

上一篇:修改注册表键值提升IIS的性能 人气:450
下一篇:添加/删除程序对应的注册表项 人气:1057
浏览全部注册表的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐