上下文菜单操作在注册表中的哪里注册?

上下文菜单操作在注册表中的哪里注册?

我正在使用WinMerge并想将其上下文菜单标题从 更改为Compare&Compare这样我就可以使用AppsKey,C组合轻松比较文件。

我可以做到吗?还是我需要重写应用程序本身才能做到这一点?

答案1

我拥有的 shell 扩展处理程序在这里。可能是一个不错的起点。

HKCU\Software\Classes\*\ShellEx\ContextMenuHandlers         

HKCU\Software\Classes\Directory\ShellEx\ContextMenuHandlers     

HKLM\Software\Classes\*\ShellEx\ContextMenuHandlers 

HKLM\Software\Classes\Directory\ShellEx\ContextMenuHandlers         

答案2

上下文菜单WinMerge是动态的,不能在注册表中更改 - 它们是在Shell ExtensionDLL 中定义的。(大多数/所有应用程序很可能都是这样的。)

c:\Program Files\WinMerge\ShellExtensionU.dll使用 的一个Total Commander插件(我不知道是哪个)打开了该文件。然后导航到 。RT_STRING\1033\7.rc这是英语上下文菜单的语言文本。然后我将其从:

STRINGTABLE
LANGUAGE 9, 1
BEGIN
  100, "ShellExtension"
  101, "WinMerge"
  102, "Open with WinMerge"
  103, "Please select no more than 2 items"
  104, "Compare"
  105, "Compare..."
  106, "Compare To"
  107, "Save this path. Select another path to compare with this path."
  109, "Compare to saved path (%1)"
  110, "Re-select First"
END

到:

STRINGTABLE
LANGUAGE 9, 1
BEGIN
  100, "ShellExtension"
  101, "WinMerge"
  102, "Open with WinMerge"
  103, "Please select no more than 2 items"
  104, "&Compare"
  105, "Compare..."
  106, "&Compare To"
  107, "Save this path. Select another path to compare with this path."
  109, "Compare to saved path (%1)"
  110, "Re-select First"
END

重新启动后,上下文菜单已更新。

相关内容