Suchen nach umgeleiteten Zeichenfolgen
In diesem Thema werden Programmieranweisungen zum Suchen von umgeleiteten Registrierungszeichenfolgen erläutert. Weitere Informationen finden Sie unter Verwenden der Registrierungszeichenfolgenumleitung.
Laden eines Language-Neutral Registrierungswerts
Unter Windows Vista und höher verwendet die MUI-Anwendung einen sprachneutralen Registrierungswert, um den Zugriff auf sprachspezifische Zeichenfolgen zu ermöglichen, die in einer Zeichenfolgenressourcentabelle gespeichert sind. Weitere Informationen finden Sie unter Erstellen einer Language-Neutral-Ressource unter Verwenden der Registrierungszeichenfolgenumleitung.
Anwendungscode, der den sprachneutralen Wert aus der Registrierung liest, sollte die Zeichenfolgen in der richtigen Sprache der Benutzeroberfläche laden, indem RegLoadMUIStringW aufgerufen wird. Wenn Sie diese Funktion verwenden, muss sich Ihre Anwendung nicht explizit mit dem Laden von Ressourcen befassen.
Wenn Sie eine vorhandene Anwendung auf die sprachneutrale Verwendung der Registrierung aktualisieren, behalten Sie die vorhandenen Zeichenfolgenwerte in der Regel als Fallbacks und aus Gründen der Abwärtskompatibilität bei. Wenn eine Literalzeichenfolge in der Registrierung beibehalten wird, kann die Anwendung auf die Literalzeichenfolge zurückgreifen, wenn ein Aufruf von RegLoadMUIStringW fehlschlägt. Sie müssen entscheiden, wie Sie einen solchen Fallback implementieren, da MUI keine Unterstützung für eine solche Implementierung bietet.
Verwenden der Shell-API zum Festlegen von Verknüpfungszeichenfolgen aus der Registrierung
Ihre Anwendung kann die Shell-API verwenden, um Zeichenfolgen für Verknüpfungen zu erstellen, die Dateien oder Ordner im Startmenü oder auf dem Desktop verknüpfen. Weitere Informationen finden Sie unter Erstellen von Ressourcen für Verknüpfungszeichenfolgen unter Verwenden der Registrierungszeichenfolgenumleitung.
Die Anwendung kann SHSetLocalizedName verwenden, um den MUI-kompatiblen Anzeigenamen für eine Verknüpfung zu laden. Es sollte IShellLink::SetDescription verwenden, um die zugeordnete InfoInfo festzulegen. Die Aufrufe registrieren die Zeichenfolgen bei der Registrierung. Betrachten Sie die folgenden Beispiele, für die "HKCR" den HKEY_CLASSES_ROOT Registrierungsschlüssel darstellt:
HKCR,"CLSID\%CLSID_AntiSpyware%",,,"Windows AntiSpyware"
HKCR,"CLSID\%CLSID_AntiSpyware%","LocalizedString",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-104"
HKCR,"CLSID\%CLSID_AntiSpyware%","InfoTip",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-208"
Die erste Zeile bietet eine nicht lokalisierte Literalzeichenfolge für Fallback und Abwärtskompatibilität. Die zweite Zeile zeigt die MUI-kompatible Methode zum Registrieren des Anzeigenamens. Diese Zeile gibt den Zeichenfolgenbezeichner 104 an, der in Msascui.exe (für Windows XP) oder in der zugehörigen sprachspezifischen Datei (für Windows Vista) gespeichert ist. Dieser Zeichenfolgenbezeichner entspricht "Meine Netzwerkplätze". Die dritte Zeile im Beispiel behandelt die InfoInfo-Registrierung. %CLSID_AntiSpyware% gibt eine Umgebungsvariable an, die die GUID darstellt, die mit dem Klassenbezeichner dieser Komponente übereinstimmt.
Für das oben gezeigte Beispiel ruft die Anwendung SHSetLocalizedName auf, um den Pfad der ausführbaren Datei für die ersten beiden Parameter anzugeben, und geben Sie idsRes als "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104" an. Ein Aufruf von IShellLink::SetDescription gibt den Pfad für die InfoInfo als "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208" an.
Abfragefreundlicher Dokumenttypnamen in der Registrierung
Die Ressourcenerstellung für benutzerfreundliche Dokumenttypnamen wird unter Erstellen von Ressourcen für Benutzerfreundliche Dokumenttypnamen unter Verwenden der Registrierungszeichenfolgenumleitung erläutert. Zum Abfragen eines Anzeigedokumentnamens sollte die Anwendung IQueryAssociations::Init verwenden, gefolgt von einem Aufruf von IQueryAssociations::GetString. Der Aufruf von IQueryAssociations::Init gibt den Dokumenttyp an, z. B. ".txt". Der Aufruf von IQueryAssociations::GetString muss ASSOCSTR_FRIENDLYDOCNAME als Zeichenfolgenbezeichner angeben.
Registrieren von Snap-In-Zeichenfolgen der Microsoft-Verwaltungskonsole, die nicht aus der Registrierung gelesen werden
Ihre Anwendung kann ein MMC-Snap-In (Microsoft Management Console) verwenden, um ihre Verwaltungsaufgaben zu hosten. Die meisten Zeichenfolgen werden als Ressourcen mithilfe der Registrierungseinstellungen behandelt, die unter Erstellen von Zeichenfolgenressourcen für die Microsoft Management Console Snap-Ins unter Verwenden der Registrierungszeichenfolgenumleitung beschrieben sind. Einige Snap-Ins registrieren jedoch Registrierungszeichenfolgenwerte, die MMC nicht aus der Registrierung lesen kann. In diesem Fall muss das Snap-In die Werte mithilfe der ISnapinAbout-Schnittstelle abrufen, die MUI-kompatibel ist.
Festlegen des Anzeigenamens und der Beschreibung für einen Windows-Dienst aus der Registrierung
Wenn Ihre MUI-Anwendung einen Windows-Dienst verwendet, müssen der Anzeigename und die Beschreibung des Diensts angezeigt werden. Die zugeordneten Ressourcen werden unter Erstellen von Zeichenfolgenressourcen für einen Windows-Dienst unter Verwenden der Registrierungszeichenfolgenumleitung erläutert.
Um den Dienstanzeigenamen festzulegen, ruft die MUI-Anwendung CreateService oder ChangeServiceConfig auf. Der Name ist eine Zeichenfolge des Formulars "@<PE-path>,-<stringID>[;<comment>]
". Wenn Ihr Dienst beispielsweise von einer .dll-Datei mit dem Pfad %ProgramFiles%\%MyPath%\MyDll.dll implementiert wird und der Zeichenfolgenbezeichner des sprachspezifischen Anzeigenamens 347 ist, wird der Parameter als "@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347
" angegeben. Die doppelten umgekehrten Schrägstriche (\\) sind erforderlich, da C/C++ den umgekehrten Schrägstrich als Escapezeichen in Zeichenfolgen verwendet.
Um die sprachspezifische Dienstbeschreibung festzulegen, sollte die MUI-Anwendung den lpDescription-Member einer SERVICE_DESCRIPTION Struktur angeben, um eine Zeichenfolge des Formulars "@<PE-path>,-<stringID>[;<comment>]
" anzugeben, wobei auf den entsprechenden Zeichenfolgenbezeichner verwiesen wird. Anschließend ruft die Anwendung ChangeServiceConfig2 auf, wobei der Parameter dwInfoLevel als SERVICE_CONFIG_DESCRIPTION und der Parameter lpInfo als SERVICE_DESCRIPTION-Struktur angegeben ist.
Zugehörige Themen