Допустим, вы хотите узнать, где в реестре находится меню, которое появляется, когда вы щелкаете правой кнопкой мыши по элементу.
Используя английский язык, вы видите, например, "Открыть командное окно здесь". Но если бы языком вашей системы был испанский, вы бы увидели "Abrir ventana de comandos aquí".
Теперь вы хотите узнать, какие элементы в реестре связаны с этим сообщением. Поиск в реестре любой из этих строк будет бесполезным, потому что вы должны искать @shell32.dll,-8506
(в Windows 7 не знаете о других версиях). Тогда вы обнаружите, что в проводнике Windows есть несколько элементов, которые предлагают возможность открыть командное окно (диск, папка и т.д.).
Это называется "перенаправление строк" и полезно, чтобы избежать изменения большого количества записей в реестре при переключении языков в системе.
Как только я рассказал вам строковый ресурс «shell32.dll», вы легко нашли все места, где он используется. Но что, если вы знаете только свою локализованную строку? Есть ли способ узнать, как на него ссылаются в реестре, и узнать все ассоциации действия? В нашем примере, скажем, вы хотите улучшить меню командного окна и не хотите оставлять какие-либо меню.
(Это всего лишь пример, потому что в данном конкретном случае вы будете искать cmd.exe
но вы поймете, что все может быть намного сложнее, включая отслеживание CLSID, поэтому вы просто ничего не знаете, кроме строки меню.)
Может быть инструментом для перечисления всех строковых ресурсов .dll? Хотя существует множество инструментов для извлечения всех видов ресурсов из программ и библиотек, я не нашел ни одного для создания такого списка, чтобы вы могли затем искать его.