Compartir a través de


Registro de programas con tipos de cliente

En este tema, se explica cómo registrar un programa en el Registro de Windows como uno de los siguientes tipos de cliente: explorador, correo electrónico, reproducción multimedia, mensajería instantánea o máquina virtual para Java.

Nota:

Esta información se aplica a los siguientes sistemas operativos:

  • Windows 2000 Service Pack 3 (SP3)
  • Windows 2000 Service Pack 4 (SP4)
  • Windows XP Service Pack 1 (SP1)
  • Windows XP Service Pack 2 (SP2)
  • Windows XP Service Pack 3 (SP3)
  • Windows Server 2003
  • Windows Vista
  • Windows Vista Service Pack 1 (SP1)
  • Windows 8

 

Este tema contiene las siguientes secciones.

En este tema, se amplía la documentación existente sobre cómo registrar un programa como un tipo de cliente determinado. Para obtener vínculos a esa documentación, consulte la sección Temas relacionados.

Elementos de registro comunes para todos los tipos de cliente

Al registrar un programa como tipo de cliente, la mayoría de las entradas del Registro son las mismas, independientemente del tipo de cliente. Sin embargo, algunas entradas del Registro son específicas del tipo de cliente y se indican en la sección Elementos de registro para tipos de cliente específicos.

En esta sección se describen los temas siguientes:

Nota:

Los nombres de subclave proporcionados en cursiva en este tema son marcadores de posición para los nombres de subclave definidos por el usuario o un conjunto de valores posibles. Los ejemplos completos con nombres de ejemplo en su lugar se proporcionan en la sección Registros de ejemplo completos.

 

Toda la información de registro del tipo de cliente se almacena en la siguiente subclave:

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName

ClientTypeName es uno de los siguientes nombres de subclave:

  • StartMenuInternet (para exploradores)
  • Mail (para correo electrónico)
  • Media (para reproducción multimedia)
  • IM (para mensajería instantánea)
  • JavaVM (para máquina virtual para Java)

A lo largo de este tema, observará referencias a un programa informático ficticio denominado "Lit View" de Litware Inc., con un archivo ejecutable denominado Litview.exe. Este programa hipotético se usa indistintamente como un mensajero instantáneo, un explorador u otro tipo de programa cliente según sea necesario para fines ilustrativos.

Selección de un nombre canónico

El proveedor debe elegir un nombre canónico para el programa. El nombre canónico nunca se muestra al usuario, por lo que no es necesario localizarlo. Su único propósito es proporcionar una cadena única que se puede usar para identificar el programa. Por lo general, es el mismo que el nombre en inglés del programa, pero esto es simplemente una convención.

En el caso de los tipos de cliente distintos de los exploradores, el nombre canónico puede ser cualquier cadena. Elija un nombre único, uno que no sea probable que lo use otro proveedor.

Para los clientes del explorador, el nombre canónico debe ser el nombre (incluida la extensión) del ejecutable asociado; por ejemplo, "Litview.exe".

Estos son algunos ejemplos de nombres canónicos.

  • Iexplore.exe (explorador)
  • Correo de Windows (correo electrónico)
  • Reproductor multimedia de Windows (elementos multimedia)
  • Windows Messenger (mensajería instantánea)

Registre el nombre canónico mediante la creación de una subclave, como se muestra aquí. El nombre de la subclave es el nombre canónico. Toda la información relacionada con el registro del programa existirá en esta subclave.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName

Registrar el nombre para mostrar de un programa

El siguiente paso del registro es especificar el nombre para mostrar del programa. Se proporciona como un valor bajo la clave de nombre canónico como se muestra aquí. Tenga en cuenta de nuevo que CanonicalName y ClientTypeName no son los nombres reales de las claves, sino solo los marcadores de posición para los nombres verdaderos, como Lit View.

Nota:

A partir de Windows 8, el nombre usado para registrarse para Establecer valores predeterminados de acceso a programas y equipos (SPAD) y para programas predeterminados debe coincidir para que los cambios de SPAD desencadenen registros de programas predeterminados.

 

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               LocalizedString = @FilePath,-StringID

El valor localizedString es una cadena de REG_SZ y consta de un signo "at" (@), la ruta de acceso completa a un archivo .dll o .exe, una coma, un signo menos y un entero decimal. El entero decimal es el identificador de un recurso de cadena, incluido en el archivo .dll o .exe, cuyo valor se va a mostrar al usuario como nombre de este cliente. Tenga en cuenta que la ruta de acceso del archivo no requiere comillas, aunque contenga espacios.

Registrar la cadena de nombre para mostrar de esta manera permite usar el mismo registro para varios idiomas. Cada instalación de idioma proporciona un archivo de recursos diferente con el nombre para mostrar almacenado en el mismo identificador de recurso.

En el ejemplo siguiente, se muestra el registro de un programa ficticio de mensajería instantánea de Lit View. Dado que es un programa de mensajería instantánea, la subclave CanonicalName (en este caso Lit View) se almacena en la subclave IM.

HKEY_LOCAL_MACHINE
   Software
      Clients
         IM
            Lit View
               (Default) = Lit View
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123

Tenga en cuenta el uso de la entrada (Valor predeterminado) como declaración secundaria del nombre para mostrar del cliente. Si LocalizedString no está presente, se usa el valor (Valor predeterminado) en su lugar. Esto funciona con todos los tipos de cliente (exploradores de Internet, exploradores de correo electrónico, aplicaciones de mensajería instantánea y reproductores multimedia). Para la compatibilidad con versiones anteriores con el Diseño del Registro de cliente de Internet Explorer, los programas de correo electrónico deben establecer el valor (Valor predeterminado) de la subclave CanonicalName en el nombre para mostrar del cliente en el idioma instalado actualmente.

Registrar el icono de un programa

Nota:

Esta sección no se aplica a Windows 2000.

 

De forma predeterminada, la sección superior del menú Inicio de Windows XP y Windows Vista contiene iconos de Internet y Correo electrónico. Estos iconos no están presentes en Windows 7 y versiones posteriores. En el caso de los clientes de explorador y correo electrónico, cuando se asigna un programa como valor predeterminado para su tipo de cliente, se muestra el icono registrado del programa para esas entradas de menú Inicio.

El registro del icono de un programa es obligatorio para los clientes de explorador y correo electrónico. El registro de un icono para los tipos de cliente de reproducción multimedia, mensajería instantánea o máquina virtual para Java es opcional. Actualmente, los iconos registrados para esos tipos de cliente no se usan en Windows y no se muestran en la sección superior de los menús Inicio de Windows XP o Windows Vista.

Para registrar un icono para un programa cliente, agregue una subclave DefaultIcon con un valor predeterminado, como se muestra aquí.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               DefaultIcon
                  (Default) = FilePath,IconIndex

El valor FilePath es la ruta de acceso completa al archivo que contiene el icono. Esta ruta de acceso no requiere comillas, aunque contenga espacios.

El valor IconIndex se interpreta de la siguiente manera:

  • Si IconIndex es un número positivo, el número se usa como índice de la matriz de iconos de base cero almacenada en el archivo. Por ejemplo, si IconIndex es 1, el segundo icono se carga desde el archivo.
  • Si IconIndex es un número negativo, el valor absoluto de IconIndex se usa como identificador de recurso (en lugar del índice) para el icono. Por ejemplo, si IconIndex es -3, el icono cuyo identificador de recurso es 3 se carga desde el archivo.

En el ejemplo siguiente, se muestra el registro de un explorador Lit View hipotético. El segundo icono almacenado en el archivo Litview.exe se usa como valor predeterminado.

HKEY_LOCAL_MACHINE
   Software
      Clients
         StartMenuInternet
            LITVIEW.EXE
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\Litview.exe,1

Registro de un verbo abierto

Nota:

Esta sección no se aplica a Windows 2000. El siguiente paso solo es necesario para los clientes de explorador y correo electrónico.

 

Supongamos que un usuario ha seleccionado el programa como programa predeterminado de Internet o correo electrónico. Ese usuario hace clic en el icono de Internet o Correo electrónico en el menú Inicio de Windows XP o Windows Vista para abrir el programa. En ese momento, se ejecuta la línea de comandos registrada, como se muestra aquí.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               shell
                  open
                     command
                        (Default) = command line

La línea de comandos debe especificar una ruta de acceso absoluta completa al archivo, seguida de opciones opcionales de línea de comandos. Si el tipo de entrada es REG_EXPAND_SZ, las variables de entorno se pueden usar en la ruta de acceso. Use comillas adecuadamente para asegurarse de que los espacios de la línea de comandos no se malinterpreten. La línea de comandos debe ejecutar el programa con los valores predeterminados adecuados. Los exploradores suelen tener como valor predeterminado la página principal del usuario. Por lo general, los programas de correo electrónico abren la Bandeja de entrada del usuario.

En el ejemplo siguiente, se muestra el registro de un verbo open para un explorador de Lit View hipotética. No especifica opciones de línea de comandos.

HKEY_LOCAL_MACHINE
   Software
      Clients
         StartMenuInternet
            LITVIEW.EXE
               shell
                  open
                     command
                        (Default) = "C:\Program Files\LitwareInc\Litview.exe"

Tenga en cuenta que, en este valor, las comillas se colocan alrededor de la ruta de acceso porque contiene espacios incrustados. Omitir estas comillas podría hacer que la línea de comandos se malinterprete.

Registrar información de instalación

Nota:

Esta sección no se aplica a Windows Server 2003.

 

Se le asigna un nombre a la característica por la que el usuario selecciona los programas predeterminados por máquina. Luego, se accede a ella, como se muestra en la tabla siguiente. (Windows Vista introdujo una nueva característica, Establecer los programas predeterminados, por los que un usuario puede establecer los valores predeterminados por usuario).

Sistema operativo Título Ubicación de acceso
Windows 7 Establecer valores predeterminados de acceso a programas y equipos
  • Menú Inicio opción Programas predeterminados
  • Elemento del Panel de control Programas predeterminados
Windows Vista Establecer valores predeterminados de acceso a programas y equipos
  • Menú Inicio opción Programas predeterminados
  • Elemento del Panel de control Programas predeterminados
Windows XP SP2 Establecer acceso al programa y los valores predeterminados
  • Menú Inicio
  • Elemento del Panel de control Agregar o quitar programas
Windows XP SP1 Configurar programas
  • Elemento del Panel de control Agregar o quitar programas

 

Para hacerlo sencillo, en este tema se usa el título de Windows 7 de la característica. Todas las versiones de la característica se conocen popularmente como SPAD.

Nota:

Si ejecuta Windows 2000 o Windows XP, debe tener instalado al menos Windows 2000 SP3 o Windows XP SP1 para ver la página Establecer acceso al programa y los valores predeterminados. En Windows Vista y versiones posteriores, el acceso a la página Establecer valores predeterminados de acceso a programas y equipos requiere privilegios de Administrador. Por este motivo, se recomienda a los desarrolladores registrarse en el elemento del Panel de control Establecer programas determinados para que cualquier usuario pueda administrar los valores predeterminados de la aplicación.

 

El siguiente árbol del Registro muestra la variedad de información que se debe registrar en la clave InstallInfo del programa para que el programa aparezca en la página Establecer valores predeterminados de acceso a programas y equipos como opción para su tipo de cliente. Cada uno de estos valores se trata detalladamente en las siguientes secciones.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               InstallInfo
                  HideIconsCommand = command line
                  ReinstallCommand = command line
                  ShowIconsCommand = command line
                  IconsVisible = 1

La línea de comandos debe especificar una ruta de acceso absoluta completa al archivo, seguida de opciones opcionales de línea de comandos. Use comillas adecuadamente para asegurarse de que los espacios de la línea de comandos no se malinterpreten.

Comando Reinstalar

La línea de comandos "reinstalar" declarada en el valor ReinstallCommand se ejecuta cuando el usuario usa la página Establecer valores predeterminados de acceso a programas y equipos para seleccionar el programa como valor predeterminado para su tipo de cliente. En Windows Vista y versiones posteriores, el acceso a esta página requiere un nivel de privilegios de Administrador. En Windows 8, si ha registrado la aplicación con el mismo nombre para Establecer valores predeterminados de acceso a programas y equipos y Programas predeterminados, los valores predeterminados especificados en Programas predeterminados para esa aplicación se aplicarán para el usuario actual, así como para ejecutar el comando de reinstalación.

El programa iniciado por la línea de comandos "reinstalar" debe asociar la aplicación con el conjunto completo de tipos de archivo y protocolo que la aplicación puede controlar. Todas las aplicaciones deben establecer la funcionalidad del controlador en el comando "reinstalar". Las aplicaciones pueden usar el comando "reinstalar" para registrar la funcionalidad, así como establecer opcionalmente el estado predeterminado. Cuando una aplicación decide implementar tanto la funcionalidad como el estado del controlador predeterminado en el comando "reinstalar", también debe restablecer los vínculos o accesos directos visibles deseados. La mayoría de los puntos de entrada visibles que elija la mayoría de las aplicaciones se muestran en el comando Ocultar iconos.

Nota:

Se recomienda encarecidamente que las aplicaciones implementen la funcionalidad de control en el comando "reinstalar".

 

Una vez completado el proceso de reinstalación, el programa iniciado por la línea de comandos "reinstalar" debe cerrarse. No debe iniciar el programa correspondiente; simplemente debe registrar los valores predeterminados. Por ejemplo, el comando "reinstalar" de un explorador no debe abrir la página principal del usuario.

Nota:

Para los clientes de explorador y correo electrónico en Windows XP y Windows Vista, las aplicaciones que eligen establecer la funcionalidad de control y el estado predeterminado en el comando de reinstalación deben registrarse para el icono correspondiente en la parte superior del menú Inicio. Consulte Registro del menú Inicio para obtener información adicional.

 

Comando Ocultar iconos

La línea de comandos declarada en el valor HideIconsCommand se ejecuta cuando el usuario borra el cuadro Habilitar acceso a este programa en la página Establecer valores predeterminados de acceso a programas y equipos. Esta línea de comandos debe ocultar todos los puntos de acceso del programa que están visibles en la interfaz de usuario. Las directrices específicas indican quitar accesos directos e iconos de las siguientes ubicaciones:

  • Iconos de escritorio
  • Vínculos de menú Inicio, incluido el grupo Inicio
  • Vínculos de la barra de inicio rápido
  • Área de notificaciones
  • Menús contextuales
  • Banda de tareas de carpeta

Esta línea de comandos también debe evitar invocaciones automáticas del programa, como las especificadas en la clave del Registro Ejecutar. Se recomienda a los proveedores implementar estas directrices en la devolución de llamada Ocultar acceso de la aplicación.

No es necesario renunciar al registro (funcionalidad de la aplicación) de los tipos de archivo cuando los iconos están ocultos. Tampoco es necesario renunciar al estado predeterminado de la aplicación para los tipos de archivo y protocolo. Si lo hace, puede provocar una mala experiencia de usuario cuando se encuentran estos tipos en la interfaz de usuario.

Después de ocultar correctamente los iconos, debe actualizar el valor del Registro IconsVisible a 0, como se muestra:

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               InstallInfo
                  IconsVisible = 0

La entrada IconsVisible es de tipo REG_DWORD.

Un método de ocultación alternativa de iconos en SPAD

Para algunas aplicaciones heredadas, es posible que una implementación completa de Hide Access no sea práctica. Un método alternativo que logra el mismo efecto es desinstalar la aplicación. En la sección siguiente, se muestra el comportamiento de ejemplo y el código de ejemplo para implementar esta alternativa. En general, los proveedores de software independientes (ISV) deben evitar esta alternativa, ya que:

  • Desinstalarán completamente la aplicación del sistema.
  • Quitarán los valores predeterminados seleccionados anteriormente.
  • No dejarán ninguna opción de interfaz de usuario para reinstalar la aplicación.
  • Harán que la característica habilitar el acceso ya no esté disponible, ya que una desinstalación quita completamente la aplicación de SPAD.

La experiencia de usuario recomendada es la siguiente:

  • Cuando el usuario desactiva la casilla Habilitar acceso a este programa en SPAD, se presenta la siguiente interfaz de usuario.

    dialog box about hiding access to the program

  • Cuando el usuario selecciona Aceptar, se inicia el elemento del Panel de control Programas y características para permitir que el usuario desinstale la aplicación.

  • Los usuarios de Windows XP deben presentarse con este cuadro de diálogo.

    equivalent windows xp dialog box

  • Cuando el usuario de Windows XP selecciona Aceptar, se inicia el elemento del Panel de control Agregar o quitar programas para permitir que el usuario desinstale la aplicación.

El código siguiente proporciona una implementación reutilizable para la característica Ocultar acceso, como se describió anteriormente. Se puede usar en Windows XP, Windows Vista y Windows 7.

#include <windows.h>
#include <shlwapi.h>
#include <strsafe.h>

PCWSTR c_pszMessage1 = L"To hide access to this program, you need to uninstall it by ";
PCWSTR c_pszMessage2 = L"using\n%s in Control Panel.\n\nWould you like to start %s?";
PCWSTR c_pszApplicationName  = L"Sample App";

int _tmain(int argc, WCHAR* argv[])
{
    OSVERSIONINFO version;
    version.dwOSVersionInfoSize = sizeof(version);

    if (GetVersionEx(&version))
    {
        PCWSTR pszCPLName = NULL;

        if (version.dwMajorVersion >= 6)
        {
            // Windows Vista and later
            pszCPLName = L"Programs and Features";
        }
        else if (version.dwMajorVersion == 5 &&
                 version.dwMinorVersion == 1)
        {
            // Windows XP
            pszCPLName = L"Add/Remove Programs";
        }

        if (pszCPLName != NULL)
        {
            WCHAR szMessage[256], szScratch[256];
            if (SUCCEEDED(StringCchPrintf(szScratch, 
                                          ARRAYSIZE(szScratch), 
                                          c_pszMessage2, 
                                          pszCPLName, 
                                          pszCPLName)))
            {
                if (SUCCEEDED(StringCchCopy(szMessage, 
                                            ARRAYSIZE(szMessage), 
                                            c_pszMessage1)))
                {
                    if (SUCCEEDED(StringCchCat(szMessage, 
                                               ARRAYSIZE(szMessage), 
                                               szScratch)))
                    {
                        if (IDOK == MessageBox(NULL, 
                                               szMessage, 
                                               c_pszApplicationName, 
                                               MB_OKCANCEL))
                        {
                            ShellExecute(NULL, 
                                         NULL, 
                                         L"appwiz.cpl", 
                                         NULL, 
                                         NULL, 
                                         SW_SHOWNORMAL);
                        }
                    }
                }
            }
        }
    }
    return 0;
}

Comando Mostrar iconos

La línea de comandos declarada en la entrada ShowIconsCommand se ejecuta cuando el usuario comprueba el cuadro Habilitar acceso a este programa en la página Establecer valores predeterminados de acceso a programas y equipos. Esta línea de comandos puede restaurar los puntos de acceso del programa, incluidos los del menú Inicio, en el escritorio y en el grupo Inicio, así como las invocaciones automáticas normales, como las especificadas en la clave del Registro Ejecutar. Los puntos de acceso visibles de interés para la mayoría de las aplicaciones se muestran en el comando Ocultar iconos. La aplicación no debe cambiar los valores predeterminados por usuario; ese cambio debe realizarse por el usuario a través de Programas predeterminados.

Después de mostrar correctamente los iconos, debe actualizar el valor del Registro IconsVisible a 1, como se muestra:

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               InstallInfo
                  IconsVisible = 1

Tenga en cuenta que, si ha usado la entrada HideIconsCommand, para solicitar una desinstalación de la aplicación, la entrada ShowIconsCommand no es de ningún uso. Debe quitarse del Registro con el resto de la información de la aplicación durante el proceso de desinstalación.

Configuración del programa de grupo

Nota:

Esta sección no se aplica a Windows 2000.

 

Como parte de la preparación del sistema, un OEM puede establecer una configuración que oculta los puntos de acceso para los programas de cliente de explorador de Microsoft, correo electrónico, reproducción multimedia, mensajería instantánea o máquina virtual de Java. Además, este especifica sus propios programas predeterminados. Los OEM pueden permitir que los usuarios restablezcan sus equipos en cualquier momento a esta configuración predeterminada al establecer los siguientes valores del Registro.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               InstallInfo
                  OEMShowIcons = 1
                  OEMDefault = 1

Si se establecen estas claves, los usuarios pueden restaurar la configuración de OEM al seleccionar la opción Fabricante del equipo en la página Establecer valores predeterminados de acceso a programas y equipos. Si no se establecen estas claves, no se muestra la opción Fabricante del equipo.

La entrada OEMShowIcons, si está presente, establece el estado de presentación del icono para el cliente especificado que se aplica si el usuario selecciona Fabricante del equipo. Un valor de 1 hace que se muestren los iconos y un valor de 0 hace que no se muestren los iconos. Si OEMShowIcons no está presente, al seleccionar Fabricante del equipo, esto no tiene ningún efecto en la configuración de la presentación del icono. OEMShowIcons es de tipo REG_DWORD.

La entrada OEMDefault, si está presente y se establece en 1, establece la preferencia de OEM para el cliente predeterminado del tipo indicado. Solo un cliente de un tipo determinado se puede marcar como el valor predeterminado del OEM. Si más de un registro de cliente contiene la entrada OEMDefault, se omiten todos los registros, y el cliente actual sigue usándose como cliente predeterminado. Si la entrada OEMDefault no está presente o está presente y se establece en 0, ese cliente concreto no se usa como cliente predeterminado si el usuario selecciona Fabricante del equipo. OEMDefault es de tipo REG_DWORD.

Además de la opción de restablecer sus equipos a la configuración predeterminada establecida por el OEM, los usuarios tienen otras tres opciones de configuración:

  • Establezca su equipo en una configuración de Microsoft Windows. En este caso, la página Establecer valores predeterminados de acceso a programas y equipos permite el acceso a todo el software de Microsoft y no relacionado con Microsoft en el equipo registrado en las categorías de productos pertinentes. Los programas de Microsoft Windows se seleccionan como opción predeterminada para cada categoría.
  • Establezca su equipo en una configuración que no sea de Microsoft. Esta configuración oculta los puntos de acceso (como el menú Inicio) en Windows Internet Explorer, el Reproductor multimedia de Windows, Windows Messenger y Microsoft Outlook Express. Permite el acceso al software que no es de Microsoft en el equipo de estas categorías. Además, si un programa que no es de Microsoft está disponible en una categoría, se establece como valor predeterminado para esa categoría. Si hay más de un programa que no es de Microsoft disponible en una categoría, se le pedirá al usuario que elija qué programa que no es de Microsoft debe usarse como valor predeterminado.
  • Establezca una configuración personalizada. Los usuarios realizan sus propias selecciones para habilitar o quitar el acceso, mezclando los programas de Microsoft y que no son de Microsoft a medida que se ajusten. Los usuarios establecen opciones predeterminadas por categoría.

Los usuarios pueden cambiar cualquiera de estas opciones en cualquier momento.

Ejemplo de registro del explorador

En el ejemplo siguiente, se muestra el registro completo de InstallInfo para un explorador de Lit View ficticia. En este caso, los modificadores de línea de comandos permiten que el archivo Litview.exe realice las acciones necesarias para cada valor.

HKEY_LOCAL_MACHINE
   Software
      Clients
         StartMenuInternet
            LITVIEW.EXE
               InstallInfo
                  ReinstallCommand = "C:\Program Files\LitwareInc\Litview.exe" /reinstall
                  HideIconsCommand = "C:\Program Files\LitwareInc\Litview.exe" /hideicons
                  ShowIconsCommand = "C:\Program Files\LitwareInc\Litview.exe" /showicons
                  IconsVisible = 1

Tenga en cuenta que las comillas se colocan alrededor de las rutas de acceso porque contienen espacios incrustados.

Elementos de registro para tipos de cliente específicos

La siguiente información también se puede encontrar en los recursos enumerados en la sección Temas relacionados al final de este tema.

Registro del menú Inicio

Por lo general, en Windows XP, las aplicaciones registran los valores predeterminados en un ámbito de todo el equipo (HKEY_LOCAL_MACHINE) en lugar de un ámbito de usuario (HKEY_CURRENT_USER). Con la introducción de Windows Vista del Control de cuentas de usuario (UAC), las aplicaciones que reclaman las ranuras de Internet y Correo electrónico en el menú Inicio deben implementar el comando "reinstalar" en el contexto de ejecución correcto.

Nota:

El vínculo de Correo electrónico del menú Inicio se ha quitado a partir de Windows 7. Sin embargo, el registro descrito en esta sección todavía debe realizarse porque asigna el cliente MAPI predeterminado.

 

Un usuario limitado en Windows XP, Windows Vista o Windows 7 no puede acceder a SPAD. Por este motivo, se recomienda a los desarrolladores registrarse para establecer el elemento del Panel de control Establecer programas predeterminados para que cualquier usuario pueda administrar los valores predeterminados de la aplicación por usuario.

Las selecciones realizadas en SPAD solo deben afectar a la configuración por máquina.

Establezca el valor del Registro como se indica a continuación.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            (Default) = CanonicalName

Nota:

La siguiente información solo se aplica a Windows XP.

Si el registro del valor predeterminado de nivel de equipo en HKEY_LOCAL_MACHINE, como se muestra anteriormente, es correcto, la aplicación debe eliminar el valor asignado a la entrada Valor predeterminado en la siguiente subclave:

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         ClientTypeName

Si se produce un error en el registro del valor predeterminado de nivel de equipo en HKEY_LOCAL_MACHINE como se muestra anteriormente (suele suceder porque el usuario no tiene permiso de escritura en la subclave), la aplicación debe establecer el siguiente valor:

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         ClientTypeName
            (Default) = CanonicalName

Esto registra el nombre canónico solo para el usuario actual, no para todos los usuarios.

 

Después de actualizar las claves del Registro, el programa debe difundir el mensaje WM_SETTINGCHANGE con wParam = 0 y lParam que apunte a la cadena terminada en null "Software\Clients\ClientTypeName" para notificar al sistema operativo que el cliente predeterminado ha cambiado.

Registro de cliente de correo electrónico

Para un cliente de correo electrónico, el programa debe tener la configuración registrada en la clave HKEY_CLASSES_ROOT\mailto para poder atender las direcciones URL que usan el protocolo mailto. Establezca valores y claves que reflejen esas configuraciones en la siguiente clave.

HKEY_LOCAL_MACHINE
   Software
      Clients
         Mail
            CanonicalName
               Protocols
                  mailto

Esta jerarquía del Registro reemplaza a la jerarquía del Registro existente mailto que se encuentra en HKEY_CLASSES_ROOT\mailto. La jerarquía sigue siendo la misma, solo ha cambiado la ubicación. El formato de esta jerarquía se documenta en MSDN en Información general y tutoriales de protocolo acoplable asincrónico. Por lo general, el protocolo mailto se registra en un programa en lugar de en un protocolo asincrónico, en cuyo caso se aplica la documentación sobre el Registro de una aplicación en un esquema de URI.

En el ejemplo siguiente, se muestra la sección mailto del registro de un controlador mailto registrado en un programa.

HKEY_LOCAL_MACHINE
   Software
      Clients
         Mail
            CanonicalName
               Protocols
                  mailto
                     (Default) = URL:MailTo Protocol
                     EditFlags = 02 00 00 00
                     URL Protocol
                     DefaultIcon
                        (Default) = %FilePath%,IconIndex
                     shell
                        open
                           command
                              (Default) = command line

El valor del registro EditFlags se documenta en Tipos de archivo en la sección titulada "Definir atributos de tipo de archivo".

Completar registros de ejemplo

Se proporcionan los ejemplos siguientes para mostrar los requisitos de registro completos para los distintos tipos de cliente.

Un explorador de ejemplo

HKEY_LOCAL_MACHINE
   Software
      Clients
         StartMenuInternet
            LITVIEW.EXE
               (Default) = Lit View
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
               InstallInfo
                  ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
                  HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
                  ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
                  IconsVisible = 1
                  shell
                     open
                        command
                           (Default) = "C:\Program Files\LitwareInc\LITVIEW.EXE" /homepage

Un explorador de correo electrónico de ejemplo

HKEY_LOCAL_MACHINE
   Software
      Clients
         Mail
            Lit View
               (Default) = Lit View
               DLLPath = @C:\Program Files\LItwareInc\LitwareMAPI.dll
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
               InstallInfo
                  ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
                  HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
                  ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
                  IconsVisible = 1
               shell
                  open
                     command
                        (Default) = "C:\Program Files\LitwareInc\LITVIEW.EXE" /inbox
               protocols
                  mailto
                     (Default) = URL:MailTo Protocol
                     EditFlags = 02 00 00 00
                     URL Protocol
                     DefaultIcon
                        (Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
                     shell
                        open
                           command
                              (Default) = "C:\Program Files\LitwareInc\LITVIEW.EXE" /mailto:%1

Un reproductor multimedia de ejemplo

HKEY_LOCAL_MACHINE
   Software
      Clients
         Media
            Lit View
               (Default) = Lit View
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
               InstallInfo
                  ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
                  HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
                  ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
                  IconsVisible = 1

Un programa de mensajería instantánea de ejemplo

HKEY_LOCAL_MACHINE
   Software
      Clients
         IM
            Lit View
               (Default) = Lit View
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
               InstallInfo
                  ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
                  HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
                  ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
                  IconsVisible = 1

Una máquina virtual para Java de ejemplo

HKEY_LOCAL_MACHINE
   Software
      Clients
         JavaVM
            Lit View
               (Default) = Lit View
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
               InstallInfo
                  ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
                  HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
                  ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
                  IconsVisible = 1

Las empresas, las organizaciones, los productos, los nombres de dominio, las direcciones de correo electrónico, los logotipos, los usuarios, las ubicaciones y los eventos que se citan a modo de ejemplo son ficticios. No se pretende establecer una asociación con empresas, organizaciones, productos, nombres de dominio, direcciones de correo electrónico, logotipos, personas, lugares o acontecimientos, ni se debería deducir tal cosa.

Programas predeterminados

Cómo registrar un explorador de Internet o un cliente de correo electrónico con el menú Inicio de Windows

Diseño del Registro de cliente de Internet Explorer (consulte la sección "Definiciones de claves del Registro de cliente")

Introducción al protocolo conectable asincrónico y tutoriales

Registro de una aplicación en un esquema de URI