Buscar cadenas redirigidas

En este tema se describen las instrucciones de programación para buscar cadenas de registro redirigidas. Para obtener más información, vea Uso del redireccionamiento de cadenas del Registro.

Carga de un valor del Registro de Language-Neutral

En Windows Vista y versiones posteriores, la aplicación MUI usa un valor del Registro independiente del idioma para permitir el acceso a cadenas específicas del idioma almacenadas en una tabla de recursos de cadena. Para obtener más información, consulte Creación de un recurso de Language-Neutral en Uso del redireccionamiento de cadenas del Registro.

El código de aplicación que lee el valor neutro del idioma del Registro debe cargar las cadenas en el idioma de la interfaz de usuario correcta mediante una llamada a RegLoadMUIStringW. Si usa esta función, la aplicación no tiene que tratar explícitamente con la carga de recursos.

Si va a actualizar una aplicación existente al uso independiente del idioma del Registro, normalmente mantendrá los valores de cadena existentes, localizados en inglés o en algún otro idioma único del Registro, como reservas y por compatibilidad con versiones anteriores. Mantener una cadena literal en el Registro permite que la aplicación vuelva a la cadena literal si se produce un error en una llamada a RegLoadMUIStringW . Debe decidir cómo implementar este tipo de reserva, ya que MUI no proporciona compatibilidad con dicha implementación.

Uso de la API de Shell para establecer cadenas de acceso directo desde el Registro

La aplicación puede usar la API de shell para crear cadenas para accesos directos que vinculan archivos o carpetas en el menú Inicio o en el escritorio. Para obtener más información, vea Crear recursos para cadenas de acceso directo en Uso del redireccionamiento de cadenas del Registro.

La aplicación puede usar SHSetLocalizedName para cargar el nombre para mostrar compatible con MUI para un acceso directo. Debe usar IShellLink::SetDescription para establecer la información sobre información asociada. Las llamadas registran las cadenas con el registro. Tenga en cuenta los ejemplos siguientes, para los que "HKCR" representa la clave del Registro 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 primera línea proporciona una cadena literal no localizada para la reserva y la compatibilidad con versiones anteriores. La segunda línea muestra la manera compatible con MUI de registrar el nombre para mostrar. Esta línea indica el identificador de cadena 104 almacenado en Msascui.exe (para Windows XP) o en su archivo específico del idioma asociado (para Windows Vista). Este identificador de cadena corresponde a "Mis lugares de red". La tercera línea del ejemplo controla el registro de información sobre información. %CLSID_AntiSpyware% especifica una variable de entorno que representa el GUID que coincide con el identificador de clase de este componente.

En el ejemplo anterior, la aplicación llama a SHSetLocalizedName para especificar la ruta de acceso del ejecutable para los dos primeros parámetros y especifica idsRes como "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104". Una llamada a IShellLink::SetDescription especifica la ruta de acceso de la Información sobre información como "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208".

Nombres de tipo de documento descriptivos de consulta en el Registro

La creación de recursos para nombres descriptivos de tipo de documento se describe en Crear recursos para nombres descriptivos de tipo de documento en Uso del redireccionamiento de cadenas del Registro. Para consultar un nombre de documento descriptivo, la aplicación debe usar IQueryAssociations::Init, seguida de una llamada a IQueryAssociations::GetString. La llamada a IQueryAssociations::Init especifica el tipo de documento, por ejemplo, ".txt". La llamada a IQueryAssociations::GetString debe especificar ASSOCSTR_FRIENDLYDOCNAME como identificador de cadena.

Registrar cadenas de complemento de Microsoft Management Console no leídas desde el Registro

La aplicación puede usar un complemento de Microsoft Management Console (MMC) para hospedar sus tareas de administración. La mayoría de las cadenas se controlan como recursos mediante la configuración del Registro que se describe en Crear recursos de cadena para Microsoft Management Console Snap-Ins en Uso del redireccionamiento de cadenas del Registro. Sin embargo, algunos complementos registran valores de cadena del Registro que MMC no puede leer del registro. En este caso, el complemento debe obtener los valores mediante la interfaz ISnapinAbout , que es compatible con MUI.

Establecer el nombre para mostrar y la descripción de un servicio de Windows desde el Registro

Si la aplicación MUI usa un servicio de Windows, debe mostrar el nombre para mostrar y la descripción del servicio. Los recursos asociados se describen en "Crear recursos de cadena para un servicio de Windows" en Uso del redireccionamiento de cadenas del Registro.

Para establecer el nombre para mostrar del servicio, la aplicación MUI llama a CreateService o ChangeServiceConfig. El nombre es una cadena con el formato "@<PE-path>,-<stringID>[;<comment>]". Por ejemplo, si un archivo de .dll implementa el servicio con la ruta %ProgramFiles%\%MyPath%\MyDll.dll y el identificador de cadena del nombre para mostrar específico del idioma es 347, el parámetro se especifica como "@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347". Las barras diagonales inversas dobles (\\) son necesarias porque C/C++ usa la barra diagonal inversa como carácter de escape en cadenas.

Para establecer la descripción del servicio específica del lenguaje, la aplicación MUI debe hacer que el miembro lpDescription de una estructura de SERVICE_DESCRIPTION indique una cadena de forma "@<PE-path>,-<stringID>[;<comment>]", haciendo referencia al identificador de cadena adecuado. A continuación, la aplicación llama a ChangeServiceConfig2 con el parámetro dwInfoLevel especificado como SERVICE_CONFIG_DESCRIPTION y el parámetro lpInfo especificado como la estructura SERVICE_DESCRIPTION .

Búsqueda de recursos de Win32 PE

Uso del redireccionamiento de cadenas del Registro