Delen via


Het zoeken van omgeleide tekenreeksen

In dit onderwerp worden programmeerinstructies besproken voor het vinden van omgeleide registerreeksen. Voor meer informatie, zie Het gebruik van registerreeksomleiding.

Een Language-Neutral registerwaarde laden

In Windows Vista en hoger gebruikt de MUI-toepassing een taalneutrale registerwaarde om toegang te verlenen tot taalspecifieke tekenreeksen die zijn opgeslagen in een tekenreeksresourcetabel. Voor meer informatie, zie Een Language-Neutral Resource maken in met de registerreeksomleiding.

Toepassingscode die de taalneutrale waarde uit het register leest, moet de tekenreeksen in de juiste taal van de gebruikersinterface laden door RegLoadMUIStringW-aan te roepen. Als u deze functie gebruikt, hoeft uw toepassing niet expliciet om te gaan met het laden van resources.

Als u een bestaande toepassing bijwerkt naar het taalneutraal gebruik van het register, behoudt u doorgaans de bestaande tekenreekswaarden, gelokaliseerd in het Engels of in een andere taal in het register, als terugval en voor compatibiliteit met eerdere versies. Door een letterlijke tekenreeks in het register te bewaren, kan de toepassing terugvallen op de letterlijke tekenreeks als een aanroep naar RegLoadMUIStringW- mislukt. U moet beslissen hoe u een dergelijke terugval implementeert, omdat MUI geen ondersteuning biedt voor een dergelijke implementatie.

Gebruik Shell API om snelkoppelstringen vanuit het register in te stellen

Uw toepassing kan de shell-API gebruiken om tekenreeksen te maken voor snelkoppelingen die bestanden of mappen koppelen in het menu Start of op het bureaublad. Voor meer informatie, zie Resources maken voor snelkoppelingsreeksen door Registerreeksomleiding te gebruiken in.

De toepassing kan SHSetLocalizedName gebruiken om de MUI-compatibele weergavenaam voor een snelkoppeling te laden. Deze moet IShellLink::SetDescription gebruiken om de bijbehorende InfoTip in te stellen. De aanroepen registreren de tekenreeksen bij het register. Bekijk de volgende voorbeelden, waarvoor HKCR de HKEY_CLASSES_ROOT registersleutel vertegenwoordigt:

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"

De eerste regel biedt een niet-gelokaliseerde letterlijke tekenreeks voor terugval- en achterwaartse compatibiliteit. Op de tweede regel ziet u de MUI-compatibele manier om de weergavenaam te registreren. Deze regel geeft de tekenreeks-id 104 aan die is opgeslagen in Msascui.exe (voor Windows XP) of in het bijbehorende taalspecifieke bestand (voor Windows Vista). Deze tekenreeks-id komt overeen met 'Mijn netwerklocaties'. De derde regel in het voorbeeld verwerkt InfoTip-registratie. %CLSID_AntiSpyware% geeft een omgevingsvariabele op die de GUID vertegenwoordigt die overeenkomt met de klasse-id van dit onderdeel.

In het bovenstaande voorbeeld roept de toepassing SHSetLocalizedName aan om het pad van het uitvoerbare bestand voor de eerste twee parameters op te geven en geef idsRes op als '@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104'. Een aanroep van IShellLink::SetDescription, geeft het pad voor de InfoTip op als @%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208.

Queryvriendelijke documenttypenamen in het register

Het maken van resources voor gebruiksvriendelijke documenttypenamen wordt besproken in Resources maken voor gebruiksvriendelijke documenttypenamen in Gebruik van registerreeksomleiding. Als u een vriendelijke documentnaam wilt opvragen, moet de toepassing IQueryAssociations::Init-, gevolgd door een oproep naar IQueryAssociations::GetString. De aanroep naar IQueryAssociations::Init geeft het documenttype op, bijvoorbeeld ".txt". De aanroep naar IQueryAssociations::GetString moet ASSOCSTR_FRIENDLYDOCNAME opgeven als tekenreeksidentificatie.

Moduletekenreeksen van Microsoft Management Console niet lezen uit het register registreren

Uw toepassing kan een MMC-module (Microsoft Management Console) gebruiken om de beheertaken te hosten. De meeste tekenreeksen worden verwerkt als resources met behulp van de registerinstellingen die worden beschreven in Tekenreeksbronnen maken voor Microsoft Management Console Snap-Ins in Registerreeksomleiding gebruiken. Sommige modules registreren echter registertekenreekswaarden die MMC niet kan lezen uit het register. In dit geval moet de module de waarden verkrijgen met behulp van de ISnapinAbout interface, die compatibel is met MUI.

De weergavenaam en beschrijving voor een Windows-service instellen vanuit het register

Als uw MUI-toepassing een Windows-service gebruikt, moet deze de weergavenaam en beschrijving van de service weergeven. De bijbehorende resources worden besproken in "Tekenreeksbronnen maken voor een Windows-service" in Registerreeksomleiding gebruiken.

Als u de weergavenaam van de service wilt instellen, roept de MUI-toepassing CreateService of ChangeServiceConfigaan. De naam is een tekenreeks van het formaat "@<PE-path>,-<stringID>[;<comment>]". Als uw service bijvoorbeeld wordt geïmplementeerd door een .dll-bestand met pad %ProgramFiles%\%MyPath%\MyDll.dllen de tekenreeks-id van de taalspecifieke weergavenaam 347 is, wordt de parameter opgegeven als '@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347'. De dubbele backslashes (\\) zijn nodig omdat C/C++ de backslash als escapeteken in tekenreeksen gebruikt.

Als u de beschrijving van de taalspecifieke service wilt instellen, moet de MUI-toepassing de lpDescription- lid van een SERVICE_DESCRIPTION structuur een tekenreeks aangeven"@<PE-path>,-<stringID>[;<comment>]", die verwijst naar de juiste tekenreeks-id. Vervolgens roept de toepassing ChangeServiceConfig2 aan met parameter dwInfoLevel opgegeven als SERVICE_CONFIG_DESCRIPTION en parameter lpInfo opgegeven als de SERVICE_DESCRIPTION structuur.

Win32 PE-resources zoeken

Registertekenreeksomleiding gebruiken