Identificadores programáticos

O Shell usa uma subchave de registro de identificador programático (ProgID) para associar um tipo de arquivo a um aplicativo e controlar o comportamento da associação. As entradas ProgID usadas para associações de arquivo estão localizadas em HKEY_CLASSES_ROOT no registro.

Este tópico é organizado da seguinte maneira:

Para obter informações adicionais, leia Como registrar um tipo de arquivo para um novo aplicativo

Elementos de identificador programático usados por associações de arquivos

O formato adequado de um nome de chave ProgID é [Fornecedor ou Aplicativo]. [Componente]. [Versão], separado por períodos e sem espaços, como em Word. Document.6. A parte Versão é opcional, mas altamente recomendada. Para obter mais informações, consulte Usando identificadores programáticos com versão.

Uma subchave ProgID deve incluir os seguintes elementos. Observe que alguns dados de cadeia de caracteres nesta chave exigem formatação específica.

Elemento Descrição
(Padrão) Defina a entrada padrão da subchave ProgID como um nome amigável para esse ProgID, adequado para exibição para o usuário. O uso dessa entrada para manter o nome amigável é preterido pela entrada FriendlyTypeName em sistemas que executam o Windows 2000 ou posterior. No entanto, você deve definir esse valor para compatibilidade com versões anteriores.
AllowSilentDefaultTakeOver (introduzido no Windows 8) Defina essa entrada opcional para sinalizar que o Windows deve ignorar esse ProgID ao determinar um manipulador padrão para um tipo de arquivo público. Independentemente de esse valor ser definido, o ProgID continua a aparecer no menu de atalho e na caixa de diálogo OpenWith. Esse é um valor REG_NONE.
AppUserModelID (introduzido no Windows 7) Defina essa entrada opcional para a ID explícita do Modelo de Usuário do Aplicativo (AppUserModelID) se o aplicativo usar um AppUserModelID explícito e usar as Listas de Saltos Recentes ou Frequentes geradas automaticamente pelo sistema ou fornecer uma Lista de Saltos personalizada. Se um aplicativo usar um AppUserModelID explícito e não definir esse valor, os itens não aparecerão nas Listas de Saltos desse aplicativo. Esta é uma cadeia de caracteres REG_SZ. Para obter mais informações, consulte IDs do modelo de usuário do aplicativo (AppUserModelIDs).
EditFlags Defina essa entrada opcional usando sinalizadores da enumeração FILETYPEATTRIBUTEFLAGS . A entrada EditFlags controla alguns aspectos do tratamento do Shell dos tipos de arquivo vinculados a esse ProgID. Você também pode usar a entrada EditFlags para limitar o quanto o usuário pode modificar determinados aspectos desses tipos de arquivo usando a folha de propriedades de um arquivo. Os valores FILETYPEATTRIBUTEFLAGS usados para EditFlags são valores binários projetados para que você possa combinar vários atributos em um único valor em uma operação OR bit a bit. Esse é um valor REG_DWORD ou REG_BINARY.
FriendlyTypeName Defina essa entrada como um nome amigável para o ProgID, adequado para exibição para o usuário. Para consistência, essa cadeia de caracteres deve conter os mesmos dados que a entrada Padrão para essa chave ProgID. Essa entrada pode ser uma cadeia de caracteres REG_SZ ou REG_EXPAND_SZ, mas deve ser formatada como uma cadeia de caracteres indireta (um nome de arquivo totalmente qualificado e um valor de recurso precedido pelo símbolo @), por exemplo @%SystemRoot%\shell32.dll,-154.
Infotip Defina essa entrada como uma breve mensagem de ajuda que o Shell exibe para este ProgID. A entrada InfoTip é exibida em uma caixa de diálogo sobre o mouse. Esse valor pode ser um REG_SZ ou REG_EXPAND_SZ cadeia de caracteres, mas, como FriendlyTypeName, ele deve ser formatado como uma cadeia de caracteres indireta.
CurVer Defina a entrada (Padrão) dessa subchave para a versão mais atual deste ProgID.
Nota: A menos que você tenha versões de aplicativo lado a lado, ou seja, várias versões instaladas no mesmo sistema, evite usar o CurVer.
DefaultIcon. Defina a entrada (Padrão) dessa subchave para o ícone padrão que você deseja exibir para tipos de arquivo associados a esse ProgID. Esse valor pode ser um REG_SZ ou REG_EXPAND_SZ cadeia de caracteres, mas deve ser fornecido como um nome de arquivo totalmente qualificado com seu valor de recurso de atendedor, por exemplo ,SystemRoot%\shell32.dll,-154.

 

O exemplo de chave do Registro a seguir ilustra um nó de chave ProgID de associação de arquivo:

HKEY_CLASSES_ROOT
   Vendor.App.1
      (Default) = My Friendly Name
      AllowSilentDefaultTakeOver
      AppUserModelID = Vendor.Application
      EditFlags = 0x00000001
      FriendlyTypeName = @%SystemRoot%\shell32.dll,-154
      InfoTip = @%SystemRoot%\shell32.dll,-54
      CurVer
         (Default) = Vendor.App.1
      DefaultIcon
         (Default) = %SystemRoot%\shell32.dll,-1

Usando identificadores programáticos com versão

Um ProgID com versão é aquele cuja versão é indicada em seu nome. Normalmente, você faz isso adicionando um ponto e o número de versão ao nome. Por exemplo:

  • Word. Document.6
  • Word. Document.8

Esses são ProgIDs com versão, com as versões 6 e 8, respectivamente. Se você tiver um aplicativo lado a lado, ou seja, que dê suporte a várias versões do aplicativo instaladas ao mesmo tempo, use CurVer e ProgIDs Independentes de Versão. Caso contrário, CurVer e ProgIDs independentes de versão devem ser evitados porque eles levarão à ineficiência.

Como registrar um tipo de arquivo para um novo aplicativo

Registro de Aplicativo

Tipos de arquivo

Como funcionam as associações de arquivos

Exibição de conteúdo por tipo de arquivo ou tipo

Verificador de Tipo de Arquivo

Manipuladores de tipo de arquivo

Tipos percebidos

Matrizes de Associação