传统右键菜单
实现自定义文件格式
# 文件右键菜单
HKEY_CLASSES_ROOT\后缀
# 所有文件
HKEY_CLASSES_ROOT\*
# 文件夹右键菜单
HKEY_CLASSES_ROOT\Directory
HKEY_CLASSES_ROOT\Folder
# 文件夹空白处右键菜单
HKEY_CLASSES_ROOT\Directory\Background
# 所有文件和文件夹
HKEY_CLASSES_ROOT\AllFilesystemObjects
HKEY_CLASSES_ROOT\后缀项里面会有一个(默认)值,这个就是双击程序打开就是用的程序,如果默认值不起作用,就会往下面的值顺延。值的数据可能是文件路径、path里面的程序,更多的是注册在HKEY_CLASSES_ROOT下面的程序,比如
文件的右键菜单会继承注册的程序的右键菜单,比如cpp继承了text的“编辑”右键菜单
对应项下面通常会有一些子项
OpenWithList:已弃用,XP之前的系统的打开方式列表
OpenWithProgIds:新版OpenWithList
shell:基于命令行的操作
shellex:拖放处理程序等一些处理
简单的主要看shell子项
shell\verb\command verb是一些动作,比如右键菜单Notepad--项就是shell\Notepad--,verb里面会有一些值,(默认)值的数据是在右键菜单展示的名称,Icon则是右键菜单展示的图标(数据是路径),Extended值(不需要设置数据)是把该verb设置在按住shift右击才显示。 verb下面的子项command的(默认)`值数据即为点击后会执行的操作。
Windows11新版(垃圾)右键菜单位置
HKEY_CLASSES_ROOT\PackagedCom\Package\应用\Server\0

参考文章
Windows注册表增加右键多级菜单
通过注册表为文件(夹)添加右键菜单
谓词和文件关联 - learn.microsoft.com
创建快捷菜单处理程序
设置可选子项和文件类型扩展属性




