Verbos e Associações de Ficheiros
Quando um usuário clica com o botão direito do mouse em um objeto do Shell, como um arquivo, o Shell exibe um menu de atalho (contexto). Este menu contém uma lista de comandos que o usuário pode selecionar para executar várias ações no item. Esses comandos também são conhecidos como itens de menu de atalho ou verbos. Os menus de atalho podem ser personalizados.
Este tópico está organizado da seguinte forma:
- Introdução aos menus de atalho para objetos do sistema de arquivos
- Verbos do menu de atalho
- transmitir itens que não sejam do sistema de arquivos e resultados do OpenSearch.
- registrar um aplicativo para manipular tipos de arquivo arbitrários
- Recursos adicionais
- Tópicos relacionados
Introdução aos menus de atalho para objetos do sistema de arquivos
Como os menus de atalho são frequentemente usados para gerenciamento de arquivos, o Shell fornece um conjunto de comandos padrão, como Cut e Copy, que aparecem no menu de atalho para qualquer objeto do sistema de arquivos, como um arquivo ou uma pasta.
O exemplo a seguir ilustra um menu de atalho padrão exibido clicando com o botão direito do mouse em MyFile.xyz-ms.
A razão pela qual um menu de atalho padrão aparece para MyFile.xyz-ms é devido ao fato de que .xyz-ms não é membro de um tipo de arquivo registrado. Por outro lado, .txt é um tipo de arquivo registrado. Se clicar com o botão direito do rato num ficheiro .txt, verá um menu de atalho com três comandos adicionais na secção superior: Imprimir, Editar e Abrir com.
Para estender o menu de atalho para um tipo de arquivo, você deve criar uma entrada do Registro para cada comando. Uma abordagem mais sofisticada é implementar um manipulador de menu de atalho (verbo), que permite estender o menu de atalho para um tipo de arquivo arquivo por arquivo. Para obter mais informações, consulte Criando manipuladores de menu de contextoe de referência de menu de contexto .
Adicionar comandos a um menu de atalho
Um manipulador de menu de atalho é um manipulador de tipo de arquivo que adiciona comandos a um menu de atalho existente. Os manipuladores de menu de atalho estão associados a um tipo de arquivo e são chamados sempre que um menu de atalho é exibido para um membro da classe. O Shell verifica o registro para ver se o tipo de arquivo está associado a algum manipulador de menu de atalho. Se estiver, o Shell consulta os manipuladores para itens de menu de atalho adicionais.
Verbos do menu de atalho
Cada comando no menu de atalho é identificado no registo pelo seu verbo. Esses verbos são os mesmos usados por ShellExecuteEx ao iniciar aplicativos programaticamente.
Um verbo é uma cadeia de texto simples que é usada pelo Shell para identificar o comando associado. Cada verbo corresponde à cadeia de comando usada para iniciar o comando em uma janela do console ou arquivo em lote (.bat).
Por exemplo, o verbo abrir normalmente inicia um programa para abrir um arquivo. A cadeia de caracteres de comando normalmente tem a seguinte aparência:
"My Program.exe" "%1"
Se qualquer elemento da cadeia de caracteres de comando contiver ou puder conter espaços, ele deverá ser colocado entre aspas. Caso contrário, se o elemento contiver um espaço, ele não será analisado corretamente. Por exemplo, "My Program.exe" inicia o aplicativo corretamente. Se você usar My Program.exe sem aspas, o sistema tentará iniciar My com Program.exe como seu primeiro argumento de linha de comando. Você sempre deve usar aspas com argumentos como "%1" que são expandidos para cadeias de caracteres pelo Shell, porque você não pode ter certeza de que a cadeia de caracteres não conterá um espaço.
Os verbos também podem ter um nome de exibição associado a eles, que é exibido no menu de atalho em vez da cadeia de caracteres do verbo em si. Por exemplo, a cadeia de caracteres de exibição para openas é Abrir com. Como as cadeias de caracteres de menu normais, incluindo um caractere e comercial na cadeia de exibição permite a seleção do teclado do comando.
Transmita itens que não sejam do sistema de arquivos e resultados do OpenSearch.
No Windows 7 e posterior, há suporte para a conexão de fontes externas ao cliente Windows através do protocolo OpenSearch. Isso permite que os usuários pesquisem um armazenamento de dados remoto e visualizem resultados de dentro do Windows Explorer. O padrão OpenSearch v1.1 define formatos de arquivo simples que podem ser usados para descrever como um cliente deve consultar o serviço Web para o armazenamento de dados e como o serviço deve retornar resultados a serem renderizados pelo cliente.
Pode ser necessário transmitir itens que não sejam do sistema de arquivos para evitar a necessidade de baixar itens no caso de resultados do OpenSearch. O recurso de pesquisa federada permite pesquisar itens de locais que não sejam do sistema de arquivos e que oferecem suporte ao OpenSearch, como o SharePoint e outros sites apoiados por serviços Web, por exemplo. Ao invocar verbos nesses itens, o sistema baixa uma versão temporária do item e a passa para a implementação do verbo. Os implementadores verbais são encorajados a evitar a necessidade de baixar o arquivo, registrando o conjunto de esquemas de URL que o verbo suporta para transmitir os itens. Os verbos fazem isso usando o SupportedProtocols chave do Registro.
Registrar um aplicativo para lidar com tipos de arquivo arbitrários
A definição de itens de menu de atalho para um tipo de arquivo específico permite especificar como o aplicativo associado abre um membro do tipo de arquivo. No entanto, os aplicativos também podem registrar um procedimento padrão separado a ser usado quando um usuário tenta usar o aplicativo para abrir um tipo de arquivo que não está associado ao aplicativo. Você registra o procedimento padrão da mesma forma que registra itens de menu de atalho. Para obter informações mais detalhadas sobre como definir itens de menu de atalho, consulte Criando manipuladores de menu de contexto.
O procedimento por defeito serve duas finalidades básicas. Uma delas é especificar como seu aplicativo deve ser invocado para abrir um tipo de arquivo arbitrário. Você pode, por exemplo, usar um sinalizador de linha de comando para indicar que um tipo de arquivo desconhecido está sendo aberto. A outra finalidade é definir as várias características de um tipo de arquivo, como os itens de menu de atalho e o ícone. Se um usuário associar seu aplicativo a um tipo de arquivo adicional, essa classe terá essas características. Se o tipo de arquivo adicional foi associado anteriormente a outro aplicativo, essas características substituirão os originais.
Para registrar o procedimento padrão, coloque as mesmas chaves do Registro que você criou para o ProgID do seu aplicativo na subchave do aplicativo de HKEY_CLASSES_ROOT\Applications. Você também pode incluir um FriendlyAppName valor para fornecer ao sistema um nome amigável para seu aplicativo. O nome amigável do aplicativo também pode ser extraído de seu arquivo executável, mas somente se o valor FriendlyAppName estiver ausente.
A entrada de registro de exemplo a seguir ilustra um procedimento padrão para MyProgram.exe que define um nome amigável e vários itens de menu de atalho. As cadeias de comando incluem o /a sinalizador para notificar o aplicativo de que está abrindo um tipo de arquivo arbitrário. Se você incluir um DefaultIcon subchave, então você deve usar um ícone genérico.
HKEY_CLASSES_ROOT
MyProgram.exe
shell
open
command
(Default) = C:\MyDir\MyProgram.exe /a "%1"
print
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1"
printto
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2"
Recursos adicionais
- Para obter informações adicionais, consulte Introdução às associações de arquivos.
- Para obter informações conceituais sobre como estender o Shell com manipuladores de tipo de arquivo, consulte Criando manipuladores de extensão do Shell.
Tópicos relacionados
-
Práticas recomendadas para manipuladores de menu de atalho e verbos de seleção múltipla
-
Escolher um verbo estático ou dinâmico para o seu menu de atalho
-
Menus de atalho (contexto) e manipuladores de menu de atalho