Individuazione di stringhe reindirizzate
In questo argomento vengono illustrate le istruzioni di programmazione per individuare le stringhe del Registro di sistema reindirizzate. Per altre informazioni, vedere Using Registry String Redirection.
Carica un valore del Registro di sistema Language-Neutral
In Windows Vista e versioni successive, l'applicazione MUI usa un valore del Registro di sistema indipendente dalla lingua per consentire l'accesso a stringhe specifiche della lingua archiviate in una tabella di risorse stringa. Per altre informazioni, vedere Crea una risorsa Language-Neutral in usando il reindirizzamento delle stringhe del registro.
Il codice dell'applicazione che legge il valore indipendente dalla lingua dal Registro di sistema deve caricare le stringhe nel linguaggio dell'interfaccia utente corretto chiamando RegLoadMUIStringW. Se si usa questa funzione, l'applicazione non deve gestire in modo esplicito il caricamento delle risorse.
Se si aggiorna un'applicazione esistente all'uso indipendente dalla lingua del Registro di sistema, in genere si manterranno i valori stringa esistenti, localizzati in inglese o in un'altra lingua del Registro di sistema, come fallback e per la compatibilità con le versioni precedenti. Mantenere una stringa letterale nel Registro di sistema consente all'applicazione di eseguire il fallback alla stringa letterale se una chiamata a RegLoadMUIStringW ha esito negativo. È necessario decidere come implementare tale fallback, perché MUI non fornisce supporto per tale implementazione.
Usare l'API Shell per impostare stringhe di collegamento dal Registro di sistema
L'applicazione può usare l'API della shell per creare stringhe per collegamenti che collegano file o cartelle nel menu Start o sul desktop. Per ulteriori informazioni, vedere Creare risorse per stringhe di scorciatoia in utilizzando il reindirizzamento delle stringhe del registro.
L'applicazione può usare SHSetLocalizedName per caricare il nome visualizzato conforme a MUI per un collegamento. Deve usare IShellLink::SetDescription per impostare la descrizione informazioni associata. Le chiamate registrano le stringhe nel registro. Si considerino gli esempi seguenti, per cui "HKCR" rappresenta la chiave del Registro di sistema HKEY_CLASSES_ROOT:
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"
La prima riga fornisce una stringa letterale non localizzata per il fallback e la compatibilità con le versioni precedenti. La seconda riga mostra il modo conforme a MUI per registrare il nome visualizzato. Questa riga indica l'identificatore di stringa 104 archiviato in Msascui.exe (per Windows XP) o nel file specifico della lingua associato (per Windows Vista). Questo identificatore di stringa corrisponde a "My Network Places". La terza riga nell'esempio gestisce la registrazione di InfoTip. %CLSID_AntiSpyware% specifica una variabile di ambiente che rappresenta il GUID che corrisponde all'identificatore di classe di questo componente.
Per l'esempio precedente, l'applicazione chiama SHSetLocalizedName per specificare il percorso del file eseguibile per i primi due parametri e specificare idsRes come "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104". Una chiamata a IShellLink::SetDescription, specifica il percorso di InfoTip come "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208".
Nomi di tipo di documento compatibili con le query nel Registro
La creazione di risorse per i nomi descrittivi dei tipi di documento è discussa in Creare risorse per nomi descrittivi dei tipi di documento in Utilizzo del Reindirizzamento delle Stringhe del Registro. Per eseguire query su un nome descrittivo del documento, l'applicazione deve usare IQueryAssociations::Init, seguita da una chiamata a IQueryAssociations::GetString. La chiamata a IQueryAssociations::Init specifica il tipo di documento, ad esempio ".txt". La chiamata a IQueryAssociations::GetString deve specificare ASSOCSTR_FRIENDLYDOCNAME come identificatore di stringa.
Registrare stringhe snap-in di Microsoft Management Console non lette dal Registro di sistema
L'applicazione può usare uno snap-in Microsoft Management Console (MMC) per ospitare le attività di gestione. La maggior parte delle stringhe viene gestita come risorse usando le impostazioni del Registro di sistema descritte in Create String Resources for Microsoft Management Console Snap-Ins in Using Registry String Redirection. Tuttavia, alcuni snap-in registrano valori di stringa del Registro di sistema che MMC non è in grado di leggere dal Registro di sistema. In questo caso, lo snap-in deve ottenere i valori usando l'interfaccia ISnapinAbout, che è compatibile con MUI.
Impostare il nome visualizzato e la descrizione per un servizio di Windows dal Registro di sistema
Se l'applicazione MUI utilizza un servizio Windows, deve visualizzare il nome visualizzato del servizio e la descrizione. Le risorse associate sono descritte in "Creare risorse stringa per un servizio Windows" nel uso del reindirizzamento delle stringhe del Registro di sistema.
Per impostare il nome visualizzato del servizio, l'applicazione MUI chiama CreateService o ChangeServiceConfig. Il nome è una stringa del formato "@<PE-path>,-<stringID>[;<comment>]
". Ad esempio, se il servizio viene implementato da un file .dll con percorso %ProgramFiles%\%MyPath%\MyDll.dlle l'identificatore stringa del nome visualizzato specifico della lingua è 347, il parametro viene specificato come "@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347
". Le doppie barre rovesciate (\\) sono necessarie perché C/C++ usa la barra inversa come carattere di escape nelle stringhe.
Per impostare la descrizione del servizio specifico della lingua, l'applicazione MUI deve fare in modo che il lpDescription membro di una struttura SERVICE_DESCRIPTION indichi una stringa di formato "@<PE-path>,-<stringID>[;<comment>]
", facendo riferimento all'identificatore di stringa appropriato. L'applicazione chiama quindi ChangeServiceConfig2 con il parametro dwInfoLevel specificato come SERVICE_CONFIG_DESCRIPTION e parametro lpInfo specificato come struttura di SERVICE_DESCRIPTION.
Argomenti correlati