Solution
You're not supposed to manually edit the content of the MuiCache
registry key at all. Whenever the cache gets refreshed, the descriptions are read again from the related executable files, and your changes are reverted back.
Aside from patching the description using e.g. ResHacker, there's a built-in feature which can be useful in this case:
You can also include a FriendlyAppName
value to provide the system with a friendly name for your application. The application's friendly name may also be extracted from its executable file, but only if the FriendlyAppName
value is absent.
Source: Extending Shortcut Menus
Log on with an administrator account.
Press Win+R, type or paste regedit.exe
in the text box, and press Enter.
Navigate to the following registry key:
HKEY_CLASSES_ROOT\Applications
Locate the subkey related to the application you're interested in. In case the application key is missing, follow these steps:
a. Right-click the Applications
key, and choose New > Key from the context menu.
b. Name the key after the executable name (e.g. whatever.exe
).
c. Right-click the new key, and create a shell
subkey. Create an open
subkey inside the shell
subkey.
d. Create a subkey called command
inside the open
subkey. Double-click the (Default)
value and set it to the path of the executable, plus "%1"
to account the parameter to pass to the program. For example:
"C:\Program Files\Whatever, Inc.\whatever.exe" "%1"
Navigate to the following key, where whatever.exe
is the actual executable name:
HKEY_CLASSES_ROOT\Applications\whatever.exe\shell\open
Right-click an empty area in the right pane, and choose New > String Value from the context menu. Name the new value FriendlyAppName
, and set it as you like. Changes are applied immediately.
Note The official documentation is not up-to-date. The FriendlyAppName
value was meant to be in stored the root application key, but that's no longer the case as of Windows XP.
Additional information
FriendlyAppName
Provides a way to get a localizable name to display for an application instead of just the version information appearing, which may not be localizable. The association query ASSOCSTR reads this registry entry value and falls back to use the FileDescription
name in the version information. If that name is missing, the association query defaults to the display name of the file.
Source: Application Registration
After starting a program, the descriptions is usually extracted from the executable file and stored in the following registry keys for later use:
HKEY_CLASSES_ROOT\Local Settings\MuiCache
HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
Those registry keys are actually mapped to the user branch:
HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
Further reading
1
You're not supposed to manually edit the content of that registry key at all. In fact, it's used as a cache for localized strings, and as soon as it gets refreshed all changes are gone - just what you're experiencing. Consider editing the description of both executables instead, e.g. using ResHacker (make sure to create a backup of the original files first).
– and31415 – 2014-08-05T21:17:42.207@and31415 Yes, but what is prompting this refresh? I had already experimented with such changes on Windows 7 and they seem to have stuck. I would've preferred avoiding "hardcoding" the changes, but might end up doing it if all registry hacks fail.. – Makaveli84 – 2014-08-05T21:32:16.930
Increasing the mui cache size would probably help, but can it be done? – Makaveli84 – 2014-08-05T22:22:04.130
Now that I think about it, you might want to try setting the
– and31415 – 2014-08-06T10:17:13.053FriendlyAppName
registry value, as explained here: Application RegistrationWell, I had already tried the FriendlyAppName approach with no effect. The way I went about it was by mimicking other existing registry entries and placing the "FriendlyAppName"/"Value" pair in the root of the application subkey. After further research, and although MS seem to advocate this usage through literature and practice, it seems the right way to do it is by adding the "FriendlyAppName"/"Value" pair to the application's default verb subkey (i.e. "open"), as suggested in the comments here and here, and which does actually work.
– Makaveli84 – 2014-08-07T14:06:48.323Yes, I reached the same conclusions while commenting on a related question. The official documentation is not up-to-date. The
– and31415 – 2014-08-07T14:13:04.207FriendlyAppName
was meant to be in stored the root key, but that's no longer the case as of Windows XP. If the approach is fine with you, I might provide an actual answer :)By all means, do provide an answer! :)
P.S. Microsoft still use
FriendlyAppName
in the applications' root key for some of their Windows tools (Calendar i.e. wincal.exe, Windows Media Player i.e. wmplayer.exe, etc..). There's still more to this, it seems... – Makaveli84 – 2014-08-07T14:39:41.807On a separate note, I'm intrigued to why the
MuiCache
changes seem to have stuck for years on my Windows 7 machine.. Maybe a larger cache limit, or a different "refreshing" algorithm? – Makaveli84 – 2014-08-07T14:49:07.417Well, apparently whoever put those registry values in the root key was probably following the official documentation. Here's a working example: before / after. As you can see, the value stored in the root key is completely ignored. This can also be confirmed by using Process Monitor. As for the cache, the behavior might have changed slightly in Windows 7 but I don't know for sure. Either way, the
– and31415 – 2014-08-09T16:01:35.887FriendlyAppName
value works fine there, too.