Windows ContextMenuHandler 名称 - 文档冲突?

问题描述 投票:0回答:1

Microsoft 页面上的 Handlers 有一个关于 Handler Names

的部分

它给出了 IContextMenu 接口的

Handler Subkey Name
类型的示例:

HKEY_CLASSES_ROOT
   MyProgram.1
      ShellEx
         ContextMenuHandlers

然后它说:

在“Handler Subkey name”键下创建一个子键,其名称 是 Shell 扩展的 CLSID 的字符串版本。

但是在下面的扩展处理程序注册示例部分中它说:

要启用特定处理程序,请在扩展名下创建一个子项 处理程序类型键以及处理程序的名称。 ...设置默认值 name 子键的值转换为处理程序 GUID 的字符串形式。

并给出了一个例子:

Shellex
   ContextMenuHandler
      MyCommand
         (Default) = {00000000-1111-2222-3333-444444444444}

因此,在第一部分中,它说使用

ContextMenuHandler
下的 CLSID 字符串,但没有提及默认值。第二个它说使用处理程序的(友好)名称并将默认值设置为 CLSID/GUID。

下一步,查看注册表,我发现它是两种方式完成的,有时使用 GUID,有时使用默认值带有 GUI 的友好名称。

哪个是正确的?或者这并不重要(看起来确实如此)?

winapi com windows-shell
1个回答
0
投票

您可以选择任何一种方式:

这是最有效的方法:

Shellex
   ContextMenuHandler
      {00000000-1111-2222-3333-444444444444}
         (Default) = UniqueFriendlyName

这也可行,但需要额外尝试查找 {GUID}

Shellex
   ContextMenuHandler
      UniqueFriendlyName
         (Default) = {00000000-1111-2222-3333-444444444444}
© www.soinside.com 2019 - 2024. All rights reserved.