Tipos de arquivo
Este tópico explica como criar novos tipos de arquivo e como associar seu aplicativo ao tipo de arquivo e a outros tipos de arquivo bem definidos. Arquivos com uma extensão de nome de arquivo comum compartilhado (.doc, .html e assim por diante) são do mesmo tipo. Por exemplo, se você criar um novo editor de texto, poderá usar o tipo de arquivo .txt existente. Em outros casos, talvez seja necessário criar um novo tipo de arquivo.
Este tópico é organizado da seguinte maneira:
- Tipos de arquivos públicos e privados
- Registrando um tipo de arquivo
- Tipos de arquivo que dão suporte a metadados abertos
- Tópicos relacionados
Informações adicionais podem ser encontradas nos seguintes tópicos:
- Como escolher uma extensão de tipo de arquivo
- Como definir atributos de tipo de arquivo
- Como incluir um aplicativo na caixa de diálogo Abrir com
- Como excluir um aplicativo da caixa de diálogo Abrir com para Tipos de Arquivo Não Associados
Tipos de arquivos públicos e privados
Os tipos de arquivos públicos também são conhecidos como tipos populares ou controversos porque os aplicativos concorrentes podem querer ser associados a esses tipos de arquivo. As características dos tipos de arquivo público incluem:
- Normalmente, elas são definidas por entidades padrões e/ou são promovidas por suas organizações definidoras como formatos de intercâmbio.
- Eles geralmente são trocados entre computadores e usuários para fins diversos.
- Eles precisam ter suporte em várias plataformas diferentes.
- Aplicativos de vários fornecedores provavelmente lidarão com eles.
Alguns exemplos de tipos de arquivo considerados públicos são os tipos de arquivo de imagem .png, .gif, .jpg e .bmp e os tipos de áudio .wav, .mp3 e .au.
Ao contrário dos tipos de arquivos públicos, os tipos de arquivos privados ou proprietários normalmente têm um formato que é implementado e compreendido por apenas um aplicativo ou fornecedor. Como resultado, os tipos de arquivos privados normalmente não são propensos a conflitos entre aplicativos. Alguns tipos de arquivo podem começar como tipos de arquivo privados, mas posteriormente se tornam tipos de arquivos públicos.
Observação
O Windows não diferencia entre tipos de arquivos públicos e privados. A distinção é relevante apenas na tomada de decisões sobre sua escolha de registro de tipo de arquivo.
Registrando um tipo de arquivo
Para associar o tipo de arquivo a um aplicativo existente, localize o progID do aplicativo no registro. Para associar o tipo de arquivo a um novo aplicativo, defina um ProgID para seu aplicativo. Para obter informações sobre como definir um novo ProgID, consulte Identificadores programáticos.
As subchaves de extensão de nome de arquivo têm o seguinte formulário geral: extensão=ProgID. As subchaves de extensão de nome de arquivo são armazenadas na subárvore HKEY_CLASSES_ROOT .
É importante incluir o período à esquerda (.) ao criar subchaves de tipo de arquivo no registro. Por exemplo, se você quiser que um tipo de arquivo com a extensão curta .myp e a extensão longa .myp-file sejam abertos com um aplicativo chamado MyProgram, use a seguinte sintaxe:
HKEY_CLASSES_ROOT
.myp
(Default) = ApplicationVendor.MyProgram
.myp-file
(Default) = ApplicationVendor.MyProgram
ApplicationVendor.MyProgram
(Default) = MyProgram Application
Conforme demonstrado no exemplo anterior, se você também registrar uma extensão de nome de arquivo curto (.myp), também deverá criar uma subchave para a extensão longa (.myp-file). Para obter mais informações, consulte Manipuladores de tipo de arquivo.
Definindo subchaves opcionais e atributos de extensão de tipo de arquivo
As entradas de extensão de tipo de arquivo no registro têm várias subchaves e atributos opcionais.
As entradas de extensão de tipo de arquivo usadas por associações de arquivo são descritas na tabela a seguir. Todos os valores são do tipo REG_SZ .
Entrada de registro | Ação |
---|---|
Padrão | Defina o valor padrão da subchave de extensão para o ProgID ao qual ela está vinculada. |
Tipo de conteúdo | Defina o valor Tipo de Conteúdo como o tipo de conteúdo MIME do tipo de arquivo. |
OpenWithList | Não use. Essa subchave contém uma ou mais subchaves de aplicativo para aplicativos que aparecem na entrada da caixa de diálogo Abrir com para o tipo de arquivo e destina-se apenas a aplicativos .exe em sistemas operacionais antes do Windows XP. Em vez disso, use OpenWithProgIds. |
OpenWithProgIds | Essa subchave contém uma lista de ProgIDs alternativos para esse tipo de arquivo. Os programas para esses ProgIDs aparecem no menu Abrir com e estão disponíveis como aplicativos padrão da Windows Store para o tipo de arquivo. Sempre que um aplicativo assume esse tipo de arquivo alterando o valor padrão, ele também deve adicionar uma entrada a essa lista. |
PerceivedType | Defina o valor PerceivedType como o PerceivedType ao qual o arquivo pertence, se houver. Essa cadeia de caracteres não é usada por versões do Windows antes do Windows Vista. Para obter mais informações, consulte Tipos percebidos e registro de aplicativo. |
A forma geral de uma subchave de extensão de nome de arquivo é a seguinte. Todos os tipos de entrada são do tipo REG_SZ .
HKEY_CLASSES_ROOT
.ext
(Default) = ProgID.ext.1
Content Type = MIME content type
PerceivedType = PerceivedType
OpenWithProgids
ProgID2.ext.1
ProgID3.ext.1
ProgID.ext.1
shellnew
Considerações importantes sobre tipos de arquivo incluem:
A subárvore HKEY_CLASSES_ROOT é uma exibição formada pela mesclagem HKEY_CURRENT_USER\classesde software\ eclasses desoftware\HKEY_LOCAL_MACHINE\
Em geral, HKEY_CLASSES_ROOT deve ser lida, mas não gravada. Para obter mais informações, consulte o artigo HKEY_CLASSES_ROOT .
Para registrar um tipo de arquivo globalmente em um computador específico, crie uma entrada para o tipo de arquivo na subchave HKEY_LOCAL_MACHINE\Classes deSoftware\.
Para tornar um registro de tipo de arquivo visível apenas para o usuário atual, crie uma entrada para o tipo de arquivo na subchave HKEY_CURRENT_USER\Classes deSoftware\.
Um aplicativo pode fornecer sua própria implementação de um verbo, como abrir ou reproduzir, conforme mostrado no exemplo do Registro a seguir.
HKEY_CLASSES_ROOT Applications ApplicationName.exe shell verb
As subchaves da subchave do verbo incluem a linha de comando e o método drop target: command e DropTarget.
Ao criar ou alterar uma associação de arquivos, é importante notificar o sistema de que você fez uma alteração. Faça isso chamando SHChangeNotify e especificando o evento SHCNE_ASSOCCHANGED . Se você não chamar SHChangeNotify, a alteração poderá não ser reconhecida até que o sistema seja reinicializado.
Para recuperar informações do Registro sobre uma associação de arquivos, use a interface IQueryAssociations . Para obter um cenário que ilustra esse procedimento, consulte Cenário de exemplo de associação de arquivos.
Observação
As subchaves caminhos do aplicativo e do registro de aplicativos são usadas para registrar e controlar o comportamento do sistema em nome dos aplicativos. Para obter informações mais detalhadas sobre essa funcionalidade, consulte Registro de Aplicativo.
Excluindo informações do Registro durante a desinstalação
Ao desinstalar um aplicativo, os ProgIDs e a maioria das outras informações do Registro associadas a esse aplicativo devem ser excluídos como parte da desinstalação. No entanto, os aplicativos que assumiram a propriedade de um tipo de arquivo (definindo o valor Padrão da subchave HKEY_CLASSES_ROOT.extension\ do tipo de arquivo para o ProgID do aplicativo) não devem tentar remover esse valor ao desinstalar. Deixar os dados em vigor para o valor Padrão evita a dificuldade de determinar se outro aplicativo assumiu a propriedade do tipo de arquivo e substituiu o valor Padrão após a instalação do aplicativo original. O Windows respeita o valor Padrão somente se o ProgID descobriu que há um ProgID registrado. Se o ProgID não for registrado, ele será ignorado.
Observe que outras informações de propriedade do tipo arquivo são armazenadas na subárvore HKEY_CURRENT_USER e também são usadas somente quando o aplicativo que ele faz referência é registrado. Portanto, esses dados não precisam ser removidos ao desinstalar um aplicativo.
Por exemplo, o seguinte mostra o estado do registro antes de um aplicativo ser desinstalado:
HKEY_CLASSES_ROOT
.mp3
(Default) = YourProgID
YourProgID
shell
open
command
(Default) = yourapp.exe %1
A seguir, mostra o estado dessas mesmas entradas do Registro após a desinstalação do aplicativo.
HKEY_CLASSES_ROOT
.mp3
(Default) = YourProgID
YourProgID subkey removed
Tipos de arquivo que dão suporte a metadados abertos
No Windows 7 e posteriores, os seguintes tipos de arquivo dão suporte a metadados abertos.
Tipo de arquivo | Extensões de nome de arquivo |
---|---|
Documentos do Office 2007 | .docx, .xlsx, .pptx |
Documentos do Office 97-2003 | .doc, .xls, .ppt |
Pesquisa Salva | .search-ms |
Formatos baseados em mídia do Windows (formato de streaming avançado (ASF) contêiner) | .wmv, .wma |
MP4 (manipulador de propriedades) | .mp4, .m4a, .m4v, .mp4v, .m4p, .m4b, .3gp, .3gpp, .3gp2, .mov |
Tópicos relacionados