0

Let's say you want to find out where in the registry is a menu you see appearing when you right-click an item.

Using English language you see, for example, "Open command window here". But if the language of your system were Spanish you would see "Abrir ventana de comandos aquí".

Now you want to know what item(s) in the registry is (are) associated with this message. Searching the registry for any of these string would be futile because you should look for @shell32.dll,-8506 (in Windows 7, don't know about another versions). You'll find then there are several items in Windows explorer that offer the option to open a command window (drive, folder, etc.).

This is called "string redirection" and is useful to avoid changing lots of registry entries when you switch languages in a system.

Once I told you the "shell32.dll" string resource, you easily found all the places where it's used. But what if you only know your localized string? Is there a way to find out how is referenced in the registry and learn all the associations of an action? In our example, let's say you want to improve the command window menu and don't want to leave behind any of the menus.

(This is just an example because in this particular case you would look for cmd.exe but you get the point -- things may be way more complicated involving CLSID's to track so you simply know nothing but the menu string.)

May be a tool to list all the string resources of a .dll? Though there are many tools to extract all kind of resources from programs and libraries, I found none to generate such list so you can then search it.

2

1 Answer 1

2

Microsoft uses so-called Multilingual User Interface technology to allow the Windows interface to be displayed in different languages. Basically, MUI technology uses resources saved in binary files with .mui extension. For instance, shell32.dll localized strings in menus, dialogs, messages etc.:

==> dir %systemroot%\system32\shell32.dll* /B /S
C:\WINDOWS\system32\shell32.dll
C:\WINDOWS\system32\cs-CZ\shell32.dll.mui
C:\WINDOWS\system32\en-GB\shell32.dll.mui
C:\WINDOWS\system32\sk-SK\shell32.dll.mui

One can open a .mui file using e.g.

1
  • In Windows 10, Resource Hacker doesn't list any icons and cursors in shell32.dll. While Visual Studio shows them Commented Aug 15, 2021 at 13:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .