您的位置:首页 > 其它

软件绿化之注册表右键菜单三

2013-06-05 10:21 204 查看
在绿化软件的过程中,遇到过不少关于系统右键菜单的注册表项,但到底有什么区别,自己却一直不太明白,近期有时间,进行了整理。

 1单个文件 2文件夹 3驱动器

1单个文件

 方法一给单个文件添加右键菜单,只需要在在注册表KEY_CLASSES_ROOT\*\shell下添加相关项

例如

reg add "HKEY_CLASSES_ROOT\*\shell\Unlocker 1.9.1\command" /ve   /d "\"%cd%\Unlocker.exe\" %%0 " /f

在单个文件上单击出现Unlocker的右键菜单

reg add "HKEY_CLASSES_ROOT\*\shell\notepad++\command" /ve   /d "\"%cd%\notepad++.exe\" %%0 " /f  

 在单个文件的单击出现notepad++菜单

这种方式其实在同时选中选择多个文件时,也可以出现相应的菜单,只要同时选中的文件少于15个,如果多于15个,右键菜单就消失了。至于原因我就不知道了。

  

 方法二给单个文件添加右键菜单,只需要在在注册表KEY_CLASSES_ROOT\*\shellex下添加相关项

   这种方式灵活性很高,但需要实现一定的接口,也就是需要实现COM,必须注册DLL。
 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\ 其实就是右键菜单
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shellex\DragDropHandlers\  看名称似乎是和拖动有关的菜单

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shellex\PropertySheetHandlers\ 是和右键属性相关的菜单

 微软官方上下文菜单
微软PropertySheetHandlers

2文件夹


 方法一给文件夹添加右键菜单,只需要在在注册表KEY_CLASSES_ROOT\*\Directory\shell

下添加相关项
例如
reg add "HKEY_CLASSES_ROOT\Directory\shell\Unlocker 1.9.1\command" /ve   /d "\"%cd%\Unlocker.exe\" %%V " /f

在文件夹上单击出现Unlocker的右键菜单

这种方式其实在同时选中选择多个文件夹时,也可以出现相应的菜单,只要同时选中的文件夹少于15个,如果多于15个,右键菜单就消失了。至于原因我就不知道了。

  

方法二给单个文件夹添加右键菜单,只需要在在注册表KEY_CLASSES_ROOT\Directory\shellex\下添加相关项

      这种方式灵活性很高,但需要实现一定的接口,也就是需要实现COM,可以参考单个文件的方法二

3驱动器 

 方法一给文件夹添加右键菜单,只需要在在注册表KEY_CLASSES_ROOT\*\Drive\shell

下添加相关项
reg add "HKEY_CLASSES_ROOT\Drive\shell\Unlocker 1.9.1\command" /ve   /d "\"%cd%\Unlocker.exe\" %%V " /f

在驱动器上右键单击时,出现unlocker菜单
如果只给HKEY_CLASSES_ROOT\Directory\下添加了项目,而没有在HKEY_CLASSES_ROOT\Drive\下添加项目,就会导致在点击驱动器时没有相关的右键菜单,看来,在注册表里边驱动器和一般的文件夹还是不一样的。
至于会不会出现一次选择很多磁盘时右键菜单会不会消失,没法时,也就不知道了。

 方法二和其他的基本一样

其实注册表中还有一个HKEY_CLASSES_ROOT\folder\,作用似乎和HKEY_CLASSES_ROOT\Drive\一样,自己简单测试了一下确实一样。也就是说给驱动器添加右键菜单也可以改变HKEY_CLASSES_ROOT\folder\下的相关项。例如好压其实就是在HKEY_CLASSES_ROOT\folder\添加了相关项,但同样可以在驱动上使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: