Compartilhar via


Registrando programas com tipos de cliente

Este tópico explica como registrar um programa no Registro do Windows como um dos seguintes tipos de cliente: navegador, email, reprodução de mídia, mensagens instantâneas ou máquina virtual para Java.

Observação

Essas informações se aplicam aos seguintes sistemas operacionais:

  • 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 tópico inclui as seções a seguir.

Este tópico estende a documentação existente sobre o registro de um programa como um tipo de cliente específico. Para obter links para essa documentação, consulte a seção Tópicos Relacionados.

Elementos de registro comuns para todos os tipos de cliente

Ao registrar um programa como um tipo de cliente, a maioria das entradas do Registro é a mesma, independentemente do tipo de cliente. Algumas entradas do Registro, no entanto, são específicas para o tipo de cliente e elas são indicadas na seção Elementos de Registro para Tipos de Cliente Específicos.

Esta seção discute os seguintes tópicos:

Observação

Os nomes de subchave fornecidos em itálico ao longo deste tópico são espaços reservados para nomes de subchave definidos pelo usuário ou um conjunto de valores possíveis. Exemplos completos com nomes de exemplo no local são fornecidos na seção Concluir Registros de Exemplo.

 

Todas as informações de registro de tipo de cliente são armazenadas na seguinte subchave:

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName

ClientTypeName é um dos seguintes nomes de subchave:

  • StartMenuInternet (para navegadores)
  • Email (para email)
  • Mídia (para reprodução de mídia)
  • Mensagens instantâneas (para mensagens instantâneas)
  • JavaVM (para máquina virtual para Java)

Ao longo deste tópico, você observará referências a um programa de computador fictício chamado "Lit View" da Litware Inc., com um arquivo executável chamado Litview.exe. Esse programa hipotético é usado de forma intercambiável como um mensageiro instantâneo, um navegador ou outro tipo de programa cliente, conforme necessário para fins ilustrativos.

Selecionando um nome canônico

O fornecedor deve escolher um nome canônico para o programa. O nome canônico nunca é mostrado ao usuário, portanto, ele não precisa ser localizado. Sua única finalidade é fornecer uma cadeia de caracteres exclusiva que possa ser usada para identificar o programa. Normalmente é o mesmo que o nome em inglês do programa, mas esta é apenas uma convenção.

Para tipos de cliente que não sejam navegadores, o nome canônico pode ser qualquer cadeia de caracteres. Escolha um nome exclusivo, um que provavelmente não será usado por outro fornecedor.

Para clientes do navegador, o nome canônico deve ser o nome, incluindo a extensão, do executável associado; por exemplo, "Litview.exe".

Aqui estão alguns exemplos de nomes canônicos.

  • Iexplore.exe (navegador)
  • Windows Mail (email)
  • Windows Media Player (mídia)
  • Windows Messenger (mensagens instantâneas)

Registre o nome canônico criando uma subchave, conforme mostrado aqui. O nome da subchave é o nome canônico. Todas as informações relacionadas ao registro desse programa existirão sob essa subchave.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName

Registrando o nome de exibição de um programa

A próxima etapa no registro é especificar o nome de exibição do programa. Ele é fornecido como um valor sob a chave de nome canônica, conforme mostrado aqui. Observe novamente que CanonicalName e ClientTypeName não são os nomes reais das chaves, mas apenas espaços reservados para os nomes verdadeiros, como Lit View.

Observação

A partir do Windows 8, o nome usado para se registrar para Definir O Acesso ao Programa e Padrões de Computador (SPAD) e para Programas Padrão deve corresponder para que as alterações do SPAD disparem registros de Programas Padrão.

 

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

O valor de LocalizedString é uma cadeia de caracteres REG_SZ e consiste em um sinal "at" (@), o caminho completo para um arquivo .dll ou .exe, uma vírgula, um sinal de menos e um inteiro decimal. O inteiro decimal é a ID de um recurso de cadeia de caracteres, contido no arquivo .dll ou .exe, cujo valor deve ser exibido para o usuário como o nome desse cliente. Observe que o caminho do arquivo não requer aspas, mesmo que contenha espaços.

Registrar a cadeia de caracteres de nome de exibição dessa maneira permite que o mesmo registro seja usado para vários idiomas. Cada instalação de idioma fornece um arquivo de recurso diferente com o nome de exibição armazenado na mesma ID de recurso.

O exemplo a seguir mostra o registro de um programa de mensagens instantâneas do Lit View fictício. Como é um programa de mensagens instantâneas, a subchave CanonicalName (nesse caso , Lit View) é armazenada na subchave de mensagens instantâneas.

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

Observe o uso da entrada (Padrão) como uma declaração secundária do nome de exibição do cliente. Se o LocalizedString não estiver presente, o valor (Padrão) será usado. Isso funciona com todos os tipos de cliente (navegadores da Internet, navegadores de email, mensageiros instantâneos e players de mídia). Para compatibilidade com versões anteriores com o Layout do Registro de Cliente do Internet Explorer, os programas de email devem definir o valor (Padrão) da subchave CanonicalName como o nome de exibição do cliente no idioma atualmente instalado.

Registrando um ícone de programa

Observação

Esta seção não se aplica ao Windows 2000.

 

Por padrão, a seção superior do menu Iniciar do Windows XP e do Windows Vista contém ícones de Internet e email. Esses ícones não estão presentes no Windows 7 e posteriores. Para clientes de navegador e email, quando um programa é atribuído como o padrão para seu tipo de cliente, o ícone registrado desse programa é exibido para essas entradas de menu Iniciar.

Registrar o ícone de um programa é obrigatório para clientes de navegador e email. Registrar um ícone para a reprodução de mídia, mensagens instantâneas ou máquina virtual para tipos de cliente Java é opcional e ícones registrados para esses tipos de cliente não são usados atualmente pelo Windows e não são exibidos na seção superior dos menus Iniciar do Windows XP ou do Windows Vista.

Para registrar um ícone para um programa cliente, adicione uma subchave DefaultIcon com um valor padrão, conforme mostrado aqui.

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

O valor filepath é o caminho completo para o arquivo que contém o ícone. Esse caminho não requer aspas, mesmo que contenha espaços.

O valor IconIndex é interpretado da seguinte maneira:

  • Se IconIndex for um número positivo, o número será usado como o índice da matriz baseada em zero de ícones armazenados no arquivo. Por exemplo, se IconIndex for 1, o segundo ícone será carregado do arquivo.
  • Se IconIndex for um número negativo, o valor absoluto de IconIndex será usado como o identificador de recurso (em vez do índice) para o ícone. Por exemplo, se IconIndex for -3, o ícone cujo identificador de recurso é 3 será carregado do arquivo.

O exemplo a seguir mostra o registro de um navegador do Lit View hipotético. O segundo ícone armazenado no arquivo Litview.exe é usado como o padrão.

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

Registrando um Verbo Aberto

Observação

Esta seção não se aplica ao Windows 2000. A etapa a seguir é necessária apenas para clientes de navegador e email.

 

Suponha que um usuário tenha selecionado seu programa como o programa de Internet ou email padrão. Esse usuário clica no ícone de Internet ou email no menu Iniciar do Windows XP ou do Windows Vista para abrir o programa. Nesse ponto, a linha de comando registrada conforme mostrado aqui é executada.

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

A linha de comando deve especificar um caminho absoluto totalmente qualificado para o arquivo, seguido por opções opcionais de linha de comando. Se o tipo de entrada for REG_EXPAND_SZ, as variáveis de ambiente poderão ser usadas no caminho. Use aspas adequadamente para garantir que os espaços na linha de comando não sejam interpretados incorretamente. A linha de comando deve executar o programa com os padrões apropriados. Os navegadores geralmente são padrão para a home page do usuário. Os programas de email geralmente abrem a Caixa de Entrada do usuário.

O exemplo a seguir mostra o registro de um verbo open para um hipotético navegador lit view. Ele não especifica opções de linha de comando.

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

Observe que, nesse valor, as aspas são colocadas ao redor do caminho porque ela contém espaços inseridos. Omitir essas aspas pode fazer com que a linha de comando seja mal interpretada.

Registrando informações de instalação

Observação

Esta seção não se aplica ao Windows Server 2003.

 

O recurso pelo qual o usuário seleciona programas padrão por computador é nomeado e acessado, conforme mostrado na tabela a seguir. (O Windows Vista introduziu um novo recurso, Defina seus programaspadrão, pelos quais um usuário pode definir os padrões por usuário.)

Sistema operacional Título Local de acesso
Windows 7 Definir o acesso ao programa e os padrões do computador
  • Opção menu Iniciarprogramas padrão
  • Item do Painel de Controle de Programas Padrão
Windows Vista Definir o acesso ao programa e os padrões do computador
  • Opção menu Iniciarprogramas padrão
  • Item do Painel de Controle de Programas Padrão
Windows XP SP2 Definir o acesso e os padrões do programa
  • Menu Iniciar
  • Item do Painel de controle Adicionar ou remover programas
Windows XP SP1 Configurar programas
  • Item do Painel de controle Adicionar ou remover programas

 

Para simplificar, este tópico usa o título do recurso do Windows 7. Todas as versões do recurso são conhecidas popularmente como SPAD.

Observação

Se você estiver executando o Windows 2000 ou o Windows XP, deverá ter pelo menos o Windows 2000 SP3 ou Windows XP SP1 instalado para ver a página Definir Acesso ao Programa e Padrões. No Windows Vista e posterior, o acesso à página Definir Acesso ao Programa e Padrões de Computador requer privilégios de Administrador. Por esse motivo, os desenvolvedores são incentivados a se registrar no item Definir seus programas padrão do Painel de Controle para que qualquer usuário possa gerenciar os padrões do aplicativo.

 

A árvore do Registro a seguir mostra a variedade de informações que devem ser registradas na chave InstallInfo do programa para que o programa apareça na página Definir Acesso ao Programa e Padrões do Computador como uma opção para seu tipo de cliente. Cada um desses valores é discutido em detalhes nas seções a seguir.

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

A linha de comando deve especificar um caminho absoluto totalmente qualificado para o arquivo, seguido por opções opcionais de linha de comando. Use aspas adequadamente para garantir que os espaços na linha de comando não sejam interpretados incorretamente.

O comando Reinstalar

A linha de comando reinstalar declarada no valor ReinstallCommand é executada quando o usuário usa a página Definir Acesso ao Programa e Padrões do Computador para selecionar seu programa como o padrão para seu tipo de cliente. No Windows Vista e posterior, o acesso a esta página requer um nível de privilégio de Administrador. No Windows 8, se você registrou seu aplicativo usando o mesmo nome para Definir Acesso ao Programa e Padrões de Computador e Programas Padrão, os padrões especificados em Programas Padrão para esse aplicativo serão aplicados ao usuário atual, bem como executar o comando de reinstalação.

O programa iniciado pela linha de comando de reinstalação deve associar o aplicativo ao conjunto completo de tipos de arquivo e protocolo que o aplicativo pode manipular. Todos os aplicativos devem estabelecer a funcionalidade do manipulador no comando reinstalar. Os aplicativos podem usar o comando de reinstalação para registrar a funcionalidade, bem como, opcionalmente, estabelecer o status padrão. Quando um aplicativo opta por implementar a funcionalidade e o status do manipulador padrão no comando de reinstalação, ele também deve restabelecer todos os links visíveis ou atalhos desejados. Os pontos de entrada visíveis escolhidos pela maioria dos aplicativos estão listados no Comando Ocultar Ícones.

Observação

É altamente recomendável que os aplicativos implementem a funcionalidade de manipulação no comando de reinstalação.

 

Depois que o processo de reinstalação for concluído, o programa iniciado pela linha de comando de reinstalação deverá ser encerrado. Ele não deve iniciar o programa correspondente; ele deve apenas registrar padrões. Por exemplo, o comando de reinstalação de um navegador não deve abrir a home page do usuário.

Observação

Para clientes de navegador e email no Windows XP e no Windows Vista, os aplicativos que optarem por estabelecer a funcionalidade de manipulação e o status padrão no comando de reinstalação devem se registrar para o ícone correspondente na parte superior do menu Iniciar. Consulte Iniciar Registro de Menu para obter informações adicionais.

 

O comando Ocultar Ícones

A linha de comando declarada no valor HideIconsCommand é executada quando o usuário limpa a caixa Habilitar acesso a este programa na página Definir Acesso ao Programa e Padrões do Computador. Essa linha de comando deve ocultar todos os pontos de acesso do programa visíveis na interface do usuário. As diretrizes específicas são remover atalhos e ícones dos seguintes locais:

  • Ícones da área de trabalho
  • Iniciar links de menu, incluindo o grupo de inicialização
  • Links da barra de Inicialização Rápida
  • Área de notificação
  • Menus de atalho
  • Faixa de tarefas da pasta

Essa linha de comando também deve impedir invocações automáticas do programa, como as especificadas na chave Executar registro. Os fornecedores são incentivados a implementar essas diretrizes no retorno de chamada Ocultar Acesso do aplicativo.

Você não precisa renunciar ao registro (funcionalidade do aplicativo) dos tipos de arquivo quando os ícones estiverem ocultos. Você também não precisa renunciar ao status padrão do aplicativo para tipos de arquivo e protocolo. Isso pode levar a uma experiência ruim do usuário quando esses tipos são encontrados na interface do usuário.

Depois de ocultar ícones com êxito, você deve atualizar o valor do Registro IconsVisible para 0, conforme mostrado:

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               InstallInfo
                  IconsVisible = 0

A entrada IconsVisible é do tipo REG_DWORD.

Um método de ocultação alternativo de ícones no SPAD

Para alguns aplicativos herdados, uma implementação completa de Ocultar Acesso pode não ser prática. Um método alternativo que obtém o mesmo efeito é desinstalar o aplicativo. A seção abaixo mostra o comportamento de exemplo e o código de exemplo para implementar essa alternativa. Em geral, os ISVs (fornecedores de software independentes) devem evitar essa alternativa, pois isso evitará:

  • Desinstale o aplicativo completamente do sistema.
  • Remova os padrões selecionados anteriormente.
  • Não deixe nenhuma opção de interface do usuário para reinstalar o aplicativo.
  • Torne o recurso habilitar o acesso não mais disponível, pois uma desinstalação remove completamente o aplicativo do SPAD.

A experiência recomendada do usuário é a seguinte:

  • Quando o usuário desmarca a caixa Habilitar acesso a este programa no SPAD, a interface do usuário a seguir é apresentada.

    dialog box about hiding access to the program

  • Quando o usuário seleciona OK, o item Programas e Recursos do Painel de Controle é iniciado para permitir que o usuário desinstale o aplicativo.

  • Os usuários do Windows XP devem ser apresentados com essa caixa de diálogo.

    equivalent windows xp dialog box

  • Quando o usuário do Windows XP seleciona OK, o item Adicionar ou Remover Programas do Painel de Controle é iniciado para permitir que o usuário desinstale o aplicativo.

O código a seguir fornece uma implementação reutilizável para o recurso Ocultar Acesso, conforme descrito acima. Ele pode ser usado no Windows XP, Windows Vista e 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;
}

O comando Mostrar Ícones

A linha de comando declarada na entrada ShowIconsCommand é executada quando o usuário verifica a caixa Habilitar acesso a este programa na página Definir Acesso ao Programa e Padrões do Computador. Essa linha de comando pode restaurar os pontos de acesso do programa, incluindo aqueles no menu Iniciar, na área de trabalho e no grupo inicial, bem como invocações automáticas normais, como as especificadas na chave de registro Executar. Os pontos de acesso visíveis de interesse para a maioria dos aplicativos estão listados no Comando Ocultar Ícones. O aplicativo não deve alterar os padrões por usuário; essa alteração deve ser feita pelo usuário por meio de Programas Padrão.

Depois de mostrar seus ícones com êxito, você deve atualizar o valor do Registro IconsVisible para 1, conforme mostrado:

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            CanonicalName
               InstallInfo
                  IconsVisible = 1

Observe que, se você tiver usado a entrada HideIconsCommand para solicitar uma desinstalação do aplicativo, a entrada ShowIconsCommand não será útil. Ele deve ser removido do registro com o restante das informações do aplicativo durante o processo de desinstalação.

Configuração do Programa de Grupo

Observação

Esta seção não se aplica ao Windows 2000.

 

Como parte da preparação do sistema, um OEM pode estabelecer uma configuração que oculta pontos de acesso para o navegador da Microsoft, email, reprodução de mídia, mensagens instantâneas ou máquina virtual para programas cliente Java e especifica seus próprios programas padrão. Os OEMs podem permitir que os usuários redefinam seus computadores a qualquer momento para essa configuração padrão definindo os seguintes valores do Registro.

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

Se essas chaves forem definidas, os usuários poderão restaurar a configuração do OEM selecionando a opção Fabricante do Computador na página Definir Acesso ao Programa e Padrões do Computador. Se essas chaves não estiverem definidas, a opção Fabricante do Computador não será mostrada.

A entrada OEMShowIcons, se presente, define o estado de exibição do ícone para o cliente especificado que é aplicado se o usuário seleciona o Fabricante do Computador. Um valor de 1 faz com que os ícones sejam mostrados e um valor de 0 faz com que os ícones não sejam mostrados. Se o OEMShowIcons estiver ausente, a seleção do Fabricante do Computador não terá efeito na configuração de exibição de ícones. OEMShowIcons é do tipo REG_DWORD.

A entrada OEMDefault, se presente e definida como 1, estabelece a preferência OEM para o cliente padrão do tipo indicado. Somente um cliente de um tipo específico pode ser marcado como o padrão OEM. Se mais de um registro de cliente contiver a entrada OEMDefault, todos serão ignorados e o cliente atual continuará sendo usado como cliente padrão. Se a entrada OEMDefault não estiver presente ou estiver presente e definida como 0, esse cliente específico não será usado como o cliente padrão se o usuário selecionar Fabricante do Computador. OEMDefault é do tipo REG_DWORD.

Além da opção de redefinir seus computadores para a configuração padrão estabelecida pelo OEM, os usuários têm três outras opções de configuração:

  • Defina o computador para uma configuração do Microsoft Windows. Nesse caso, a página Definir Acesso ao Programa e Padrões do Computador permite o acesso a todos os softwares microsoft e não microsoft no computador registrado nas categorias de produto relevantes. Os programas do Microsoft Windows são selecionados como a opção padrão para cada categoria.
  • Defina o computador como uma configuração que não seja da Microsoft. Essa configuração oculta pontos de acesso (como o menu Iniciar) para o Windows Internet Explorer, o Windows Media Player, o Windows Messenger e o Microsoft Outlook Express. Ele permite o acesso ao software que não é da Microsoft no computador nessas categorias. Além disso, se um programa não Microsoft estiver disponível em uma categoria, ele será definido como o padrão para essa categoria. Se mais de um programa não Microsoft estiver disponível em uma categoria, o usuário será solicitado a escolher qual programa que não seja da Microsoft deve ser usado como o padrão.
  • Estabelecer uma configuração personalizada. Os usuários fazem suas próprias seleções para habilitar ou remover o acesso, misturando programas da Microsoft e não da Microsoft como acharem adequado. Os usuários estabelecem opções padrão de categoria por categoria.

Os usuários são livres para alterar qualquer uma dessas opções a qualquer momento.

Exemplo de registro do navegador

O exemplo a seguir mostra o registro completo do InstallInfo para um navegador do Lit View fictício. Nesse caso, as opções de linha de comando permitem que o arquivo Litview.exe execute todas as ações necessárias 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

Observe que as aspas são colocadas ao redor dos caminhos porque contêm espaços inseridos.

Elementos de registro para tipos de cliente específicos

As informações a seguir também podem ser encontradas nos recursos listados na seção Tópicos Relacionados no final deste tópico.

Iniciar registro de menu

No Windows XP, os aplicativos normalmente registram padrões em um escopo de todo o computador (HKEY_LOCAL_MACHINE) em vez de um usuário (HKEY_CURRENT_USER). Com a introdução do Windows Vista do UAC (Controle de Conta de Usuário), os aplicativos que declaram os slots de Internet e email no menu Iniciar devem implementar o comando de reinstalação dentro do contexto de execução correto.

Observação

O link de emaildo menu Iniciar foi removido a partir do Windows 7. No entanto, o registro discutido nesta seção ainda deve ser executado porque atribui o cliente MAPI padrão.

 

Um usuário limitado no Windows XP, Windows Vista ou Windows 7 não pode acessar o SPAD. Por esse motivo, os desenvolvedores são incentivados a se registrar no item Definir seus programas padrão do Painel de Controle para que qualquer usuário possa gerenciar os padrões de aplicativo por usuário.

As seleções feitas no SPAD só devem afetar as configurações por computador.

Defina o valor do Registro da seguinte maneira.

HKEY_LOCAL_MACHINE
   Software
      Clients
         ClientTypeName
            (Default) = CanonicalName

Observação

As informações a seguir se aplicam somente ao Windows XP.

Se o registro do padrão no nível do computador em HKEY_LOCAL_MACHINE conforme mostrado acima for bem-sucedido, o aplicativo deverá excluir o valor atribuído à entrada Padrão na seguinte subchave:

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         ClientTypeName

Se o registro do padrão no nível do computador em HKEY_LOCAL_MACHINE conforme mostrado acima falhar, geralmente porque o usuário não tem permissão de gravação para a subchave, o aplicativo deve definir o seguinte valor:

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         ClientTypeName
            (Default) = CanonicalName

Isso registra o nome canônico somente para o usuário atual, não para todos os usuários.

 

Depois de atualizar as chaves do Registro, o programa deve transmitir a mensagem WM_SETTINGCHANGE com wParam = 0 e lParam apontando para a cadeia de caracteres terminada em nulo "Software\Clients\ClientTypeName" para notificar o sistema operacional de que o cliente padrão foi alterado.

Registro do cliente de email

Para um cliente de email, o programa precisa ter configurações registradas na chave HKEY_CLASSES_ROOT\mailto para usar as URLs de serviço que usam o protocolo mailto. Defina valores e chaves que espelham essas configurações na chave a seguir.

HKEY_LOCAL_MACHINE
   Software
      Clients
         Mail
            CanonicalName
               Protocols
                  mailto

Essa hierarquia do Registro substitui a hierarquia de registro mailto existente encontrada em HKEY_CLASSES_ROOT\mailto. A hierarquia permanece a mesma, apenas o local foi alterado. O formato dessa hierarquia está documentado no MSDN em Tutoriais e visões gerais de protocolo pluggáveis assíncronos. Normalmente, o protocolo mailto é registrado em um programa em vez de um protocolo assíncrono, nesse caso, a documentação sobre Registrando um aplicativo em um esquema de URI se aplica.

O exemplo a seguir mostra a seção mailto do registro de um manipulador mailto registrado em um 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

O valor do registro EditFlags está documentado em Tipos de Arquivo na seção intitulada "Definindo atributos de tipo de arquivo".

Concluir registros de exemplo

Os exemplos a seguir são fornecidos para mostrar os requisitos de registro completos para os vários tipos de cliente.

Um navegador de exemplo

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

Um navegador de email de exemplo

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

Um player de mídia de exemplo

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

Um programa de exemplo do Instant Messenger

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

Uma máquina virtual de exemplo para Java

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

Os exemplos de empresas, organizações, produtos, nomes de domínio, endereços de email, logotipos, pessoas, lugares e eventos aqui mencionados são fictícios. Nenhuma associação com qualquer empresa, organização, produto, nome de domínio, endereço de email, logotipo, pessoa, lugar ou evento é intencional ou deve ser presumida.

Programas padrão

Como registrar um navegador da Internet ou um cliente de email com o menu Iniciar do Windows

Layout do Registro de Cliente do Internet Explorer (consulte a seção "Definições de chave do Registro do Cliente")

Visão geral e tutoriais de protocolo plugável assíncrono

Registrando um aplicativo em um esquema de URI