在注册表中右键菜单的项目都包含在第一子项 HKEY_CALSS_ROOT 中。展开该项,第一个子项一般是 * ,这个统配符表示一切后缀的文件都通用。也就是说,这个子项中的一切右键菜单项,没有特别说明,会出现每一个文件的右键菜单中。
再比如.html项,就是这个项分管以.html后缀结尾的文件的右键菜单。
在一个子项的其内部,所有的右键菜单分为两部分存储
shell:可通过shell子项编辑注册表的项值实现一些简单的右键功能。
对shell项的修改:
增加子项,键的名字就会是右键菜单项的显示名字。
在该子项中增加command项,数据中填入字符串值是cmd命令。如果是多行cmd命令的执行需要编写一个bat脚本,然后调用此bat脚本即可。
"D:\Environment\Python36\python.exe" "%1" %*
shellex:键名称是一串序列号的,序列号是COM ID,在注册表中可以将一个COM组件的dll和一个COM ID联系到一起。通过COM编程实现一些复杂的右键功能。
编写可以参考
https://blog.csdn.net/qq_41786318/article/details/79814986
文件夹,文件夹分为两类菜单,一类是鼠标指向一个文件夹图标时,点击右键出来的菜单;第二类菜单时鼠标在已经打开的文件夹窗口的空白处,点击右键弹出的菜单。如下图所示,第一类菜单的注册表项直接在 Directory 下,shell和shellex\ContextMenuHandlers 里面;第二类菜单则在子项 Background 里面。
Directory:鼠标指向一个文件夹图标时