给Notepad++ 加右键菜单带图标的实现方法

05-26

从网上下载下来的Notepad++

http://download.tuxfamily.org/notepadplus/6.3.3/npp.6.3.3.bin.zip

解压之后,可以直接使用, 但是右键菜单中没有它,非常不方便,
本文使用三种方式给Notepad++注册右键菜单功能,他们只有稍微的区别:

方式一:
如下建立一个reg文件,拷贝如下内容并替换相关路径, 保存,双击运行加入注册表就好了.

复制代码

代码如下:

Windows Registry Editor Version 5.00</p><p>[HKEY_CLASSES_ROOT/*/shell/NotePad++]
@="用&Notepad++打开"
"Icon"="C://Program Files (x86)//Notepad++//Notepad++.exe"</p><p>[HKEY_CLASSES_ROOT/*/shell/NotePad++/Command]
@="C://Program Files (x86)//Notepad++//Notepad++.exe /"%1/""

卸载命令也保存为reg文件,拷贝如下内容, 保存,双击运行加入注册表就好了

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT/*/shell/NotePad++]

方式二:

在另一台正常安装Notepad++的系统里,看到其使用“Notepad++”编辑配置的位置不同,在HKEY_CLASSES_ROOT/*/shellex/ContextMenuHandlers下。依然是使用注册表,相关注册表信息如下:

复制代码

代码如下:

Windows Registry Editor Version 5.00</p><p>[HKEY_CLASSES_ROOT/*/shellex/ContextMenuHandlers/Notepad++]
@="{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}"</p><p>[HKEY_CLASSES_ROOT/CLSID/{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}]
@="Notepad++"</p><p>[HKEY_CLASSES_ROOT/CLSID/{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}/InprocServer32]
@="D://Program Files//Notepad++//notepad++.exe"
"ThreadingModel"="Apartment"</p><p>[HKEY_CLASSES_ROOT/CLSID/{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}/Settings]
"Title"="Edit with &Notepad++"
"Path"="D://Program Files//Notepad++//notepad++.exe"
"Custom"=""
"ShowIcon"=dword:00000001
"Dynamic"=dword:00000001
"Maxtext"=dword:00000019

卸载命令如下:

复制代码

代码如下:

Windows Registry Editor Version 5.00</p><p>[-HKEY_CLASSES_ROOT/*/shellex/ContextMenuHandlers/Notepad++]
[-HKEY_CLASSES_ROOT/CLSID/{00F3C2EC-A6EE-11DE-A03A-EF8F55D89593}]

方式三:

如果你的目录中包含了NppShell_03.dll或者NppShell_04.dll或者NppShell_05.dll,不同的版本里面的这个文件名称不一样。你也可以到网上下载一个这样的dll文件,如果有这样的文件,把下面的代码用记事本保存为“Notepad++右键菜单添加or卸载工具.bat”,放到Notepad++的安装目录下面或者NppShell_04.dll在相同的目录下面执行即可。代码如下:

复制代码

代码如下:

@Echo Off
title Notepad++右键菜单添加or卸载工具</p><p>SetLocal EnableDelayedExpansion
echo 1.添加Notepad++右键菜单
echo ------------------------
echo 2.卸载Notepad++右键菜单
echo ------------------------</p><p>Set /p u=请输入数字并按Enter确定:</p><p>If "%u%"=="1" Goto regnp++
If "%u%"=="2" Goto unregnp++</p><p>:regnp++
regsvr32 NppShell_04.dll
exit</p><p>:unregnp++
regsvr32 /u NppShell_04.dll
exit