Where are context menu actions registered in the registry?

1

I'm using WinMerge and would like to change it's context menu title from Compare to &Compare (So I can use the AppsKey, C combination to compare files easily.

Can I do it? Or do I need to re-write the application itself to do it?

RonK

Posted 2011-05-30T10:27:54.600

Reputation: 1 280

Answers

0

The context menus for WinMerge are dynamic and cannot be changed in the registry - they are defined within the Shell Extension DLL. (it is most likely that most/all applications are like that.

I opened the c:\Program Files\WinMerge\ShellExtensionU.dll file using one of Total Commander's plug-ins (I don't know which). Then navigated to .RT_STRING\1033\7.rc which is the English language text for the context menu. Then I changed it from:

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

To:

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

After a re-start, the context menus were updated.

RonK

Posted 2011-05-30T10:27:54.600

Reputation: 1 280

1

The handlers for shell extensions that I have are here. Probably a good place to start.

HKCU\Software\Classes\*\ShellEx\ContextMenuHandlers         

HKCU\Software\Classes\Directory\ShellEx\ContextMenuHandlers     

HKLM\Software\Classes\*\ShellEx\ContextMenuHandlers 

HKLM\Software\Classes\Directory\ShellEx\ContextMenuHandlers         

r1x

Posted 2011-05-30T10:27:54.600

Reputation: 11

Thanks - that answered the 1st part of my question and helped me in my investigation. But the answer was within the application itself :) – RonK – 2011-05-30T11:02:12.477