Condividi tramite


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 Uso del reindirizzamento delle stringhe del Registro di sistema.

Caricare 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 alle stringhe specifiche della lingua archiviate in una tabella di risorse stringa. Per altre informazioni, vedere Creare una risorsa Language-Neutral in Using Registry String Redirection.

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 mantengono i valori stringa esistenti, localizzati in inglese o in altre lingue singole del Registro di sistema, come fallback e per 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 altre informazioni, vedere Create Resources for Shortcut Strings in Using Registry String Redirection .For more information, see Create Resources for Shortcut Strings in Using Registry String Redirection.

L'applicazione può usare SHSetLocalizedName per caricare il nome visualizzato conforme a MUI per un collegamento. Deve usare IShellLink::SetDescription per impostare la descrizione info associata. Le chiamate registrano le stringhe con il Registro di sistema. Si considerino gli esempi seguenti, per i quali "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 corrispondente all'identificatore di classe di questo componente.

Per l'esempio illustrato in precedenza, l'applicazione chiama SHSetLocalizedName per specificare il percorso dell'eseguibile per i primi due parametri e specificare idsRes come "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104". Una chiamata a IShellLink::SetDescription specifica il percorso per infoTip come "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208".

Nomi dei tipi di documento descrittivi delle query nel Registro di sistema

La creazione di risorse per i nomi descrittivi dei tipi di documento è descritta in Creare risorse per nomi descrittivi dei tipi di documento in Uso del reindirizzamento delle stringhe del Registro di sistema. 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 di 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 .Most strings are handled as resources using the registry settings described in Create String Resources for Microsoft Management Console Snap-Ins in Using Registry String Redirection. Tuttavia, alcuni snap-in registrano valori 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 , compatibile con MUI.

Impostare il nome visualizzato e la descrizione per un servizio di Windows dal Registro di sistema

Se l'applicazione MUI usa un servizio Windows, deve visualizzare il nome visualizzato e la descrizione del servizio. Le risorse associate sono descritte in "Create String Resources for a Windows Service" (Crea risorse stringa per un servizio Windows) in Using Registry String Redirection .The associated resources are discuss in "Create String Resources for a Windows Service" in Using Registry String Redirection.

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 di .dll con percorso %ProgramFiles%\%MyPath%\MyDll.dll e l'identificatore stringa del nome visualizzato specifico della lingua è 347, il parametro viene specificato come "@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347". Le doppie barre rovesciata (\\) sono necessarie perché C/C++ usa la barra rovesciata come carattere di escape nelle stringhe.

Per impostare la descrizione del servizio specifico della lingua, l'applicazione MUI deve rendere membro lpDescription di una struttura SERVICE_DESCRIPTION indicare 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 il parametro lpInfo specificato come struttura SERVICE_DESCRIPTION .

Individuazione delle risorse Win32 PE

Uso del reindirizzamento delle stringhe del Registro di sistema