Shell 和 ShellEx 在 Windows 注册表中有什么区别?

What is the difference between Shell and ShellEx in Windows Registry?

我正在尝试在 windows 注册表中添加自定义上下文菜单,我发现 shell 键和 shellex 键似乎都起着同样的作用?为什么有 2 个,它们有什么用?

Shell 键用于 static verbs,由 ShellExecute 和文件类型上下文菜单使用。它们易于实现,因为它们只是一个指定命令的字符串。如果需要,可以使用可选的 COM 对象(DropTarget 等)扩展它们。

ShellEx 键用于 shell 扩展,这些是 COM 对象,shell 中有各种扩展点,每种类型都是 Shell 的子键前任。 ShellEx\ContextMenuHandlers 是普通 Shell 密钥的 shell 扩展版本。 shell 扩展的不同类型是 listed here