Suchen lokalisierter Zeichenfolgenumleitungsressourcen in Windows

0

Angenommen, Sie möchten herausfinden, wo in der Registrierung ein Menü angezeigt wird, wenn Sie mit der rechten Maustaste auf ein Element klicken.

In englischer Sprache wird beispielsweise "Befehlsfenster hier öffnen" angezeigt. Aber wenn die Sprache Ihres Systems Spanisch wäre, würden Sie "Abrir ventana de comandos aquí" sehen.

Jetzt möchten Sie wissen, welche Elemente in der Registrierung mit dieser Nachricht verknüpft sind. Das Durchsuchen der Registrierung nach einer dieser Zeichenfolgen wäre sinnlos, da Sie suchen sollten @shell32.dll,-8506 (In Windows 7 kennen Sie keine anderen Versionen). Sie werden feststellen, dass es im Windows-Explorer mehrere Elemente gibt, die die Möglichkeit bieten, ein Befehlsfenster (Laufwerk, Ordner usw.) zu öffnen.

Das nennt man "Zeichenkettenumleitung" Dies ist nützlich, um zu vermeiden, dass viele Registrierungseinträge geändert werden, wenn Sie die Sprache in einem System wechseln.

Nachdem ich Ihnen die Zeichenfolgenressource "shell32.dll" mitgeteilt habe, haben Sie problemlos alle Stellen gefunden, an denen sie verwendet wird. Aber was ist, wenn Sie nur Ihre lokalisierte Zeichenfolge kennen? Gibt es eine Möglichkeit herauszufinden, wie in der Registrierung verwiesen wird, und alle Verknüpfungen einer Aktion zu lernen? In unserem Beispiel möchten Sie das Befehlsfenstermenü verbessern und keines der Menüs zurücklassen.

(Dies ist nur ein Beispiel, da Sie in diesem speziellen Fall suchen würden cmd.exe Aber Sie verstehen, dass die Verfolgung von CLSIDs viel komplizierter sein kann, sodass Sie nur die Menüzeichenfolge kennen.)

Kann ein Tool zum Auflisten aller Zeichenfolgenressourcen einer DLL sein? Obwohl es viele Tools gibt, um alle Arten von Ressourcen aus Programmen und Bibliotheken zu extrahieren, habe ich keine gefunden, um eine solche Liste zu erstellen, damit Sie sie dann durchsuchen können.

cdlvcdlv
quelle
@ JosefZ Danke. Resource Hacker werde den Job machen. +1 und wenn Sie als Antwort ausarbeiten möchten, nehme ich es an.
cdlvcdlv

Antworten:

1

Microsoft verwendet sogenannte Mehrsprachige Benutzeroberfläche Technologie, mit der die Windows-Benutzeroberfläche in verschiedenen Sprachen angezeigt werden kann. Grundsätzlich gilt, MUI Technologie nutzt Ressourcen in Binärdateien mit gespeichert .mui Erweiterung. Zum Beispiel, shell32.dll Lokalisierte Zeichenfolgen in Menüs, Dialogen, Nachrichten usw .:

==> 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

Man kann einen öffnen .mui Datei unter Verwendung von z.B.

JosefZ
quelle