Eu descobri como adicionar itens de menu de contexto do botão direito do mouse a arquivos no Windows Explorer, adicionando chaves ao registro. Ou seja, posso clicar com o botão direito em um arquivo no Explorer e executar um aplicativo personalizado nesse arquivo.
Eu gostaria de fazer o mesmo para uma pasta e não encontrei uma maneira de fazer isso (ainda). Vejo artigos sobre como criar / escrever manipuladores de menu de contexto personalizados, mas prefiro não ir lá.
Encontrei um artigo aqui sobre como adicionar itens de menu de contexto em cascata à área de trabalho e ao "Computador" no Explorer, mas isso não funciona para nenhuma pasta.
Gostaria de poder adicionar meu aplicativo personalizado ao menu de contexto e fazê-lo funcionar tanto em arquivos quanto em pastas. Existe uma maneira de fazer isso sem escrever um manipulador de menu de contexto?
Encontrei a solução no artigo abaixo, que descreve como fazer isso por meio do registro para arquivos, bem como para pastas:
Os dois artigos a seguir fornecem informações e opções adicionais:
fonte
Respostas:
No editor de registro (
regedit.exe
), encontre:Menu de contexto para clicar com o botão direito nas pastas no painel esquerdo do Windows Explorer ou no fundo de um diretório no painel direito:
HKEY_CLASSES_ROOT\Directory\Background\shell
se você é administradorHKEY_CURRENT_USER\Software\Classes\directory\Background\shell
se você é um usuário normalMenu de contexto para clicar com o botão direito nas pastas no painel direito do Windows Explorer:
HKEY_CLASSES_ROOT\Directory\shell
se você é administradorHKEY_CURRENT_USER\Software\Classes\directory\shell
se você é um usuário normalMenu de contexto para qualquer arquivo:
HKEY_CLASSES_ROOT\*\shell
se você é administradorHKEY_CURRENT_USER\Software\Classes\*\shell
se você é um usuário normalEm todos os casos:
shell
, nomeando-a como deseja nomear o item do menu de contextocommand
(nome obrigatório)default
propriedade emcommand
paramyprogrampath\path\path\executable.exe %1
passar o caminho e o nome do arquivo selecionado para o seu programa personalizadoMais personalização:
icon
para a chave criada na etapa 1 com o valor correspondendo a um caminho de recurso de ícone. Você também pode fornecer argumentos inteiros para especificar qual ícone usar. Exemplo:%SystemRoot%\System32\shell32.dll,3
Extended
para a chave criada na etapa 1Position
com um dos seguintes:Top
,Bottom
fonte
HKEY_CLASSES_ROOT\Directory\Background\shell
só pode afetar o clique com o botão direito no plano de fundo de um diretório"%1"
caso o caminho tenha espaços.Command
, não é?%1
por%V
.Voltei e também respondi isso em outro tópico, pois não parece haver muito sobre essa questão especificamente.
Descobri que a maneira mais simples era adicionar um valor de string à chave chamada "AppliesTo" e definir seu valor como "under: {path}"
No meu exemplo, eu quero que ele olhe apenas na unidade T, então meu valor String é "AppliesTo": "under: T:".
Em C #, isso é facilmente realizado com o seguinte:
fonte
Encontrou uma solução mais limpa, fácil e rápida: crie um arquivo de texto, preencha-o com este conteúdo, atualize-o de acordo com suas necessidades, salve com o sufixo .reg e execute-o (não precisa de privilégios de administrador porque acessa a parte do usuário do registro ):
Desta forma, você também pode fazer um backup da sua configuração: basta salvar o arquivo .reg em um local seguro. Se você editar manualmente o registro após iniciar o arquivo, clique com o botão direito e selecione "exportar".
Cuidado com retrocessos duplos no caminho: \\
fonte
A única boa solução que encontrei realmente funcionando é: /superuser/1097054/shell-context-menu-registry-extension-doesnt-work-when-default-program-is-other
Adicione chaves em HKEY_CLASSES_ROOT \ SystemFileAssociations \ your.extension \ shell \ command Modifique a última chave com o comando que deseja fazer.
Para o meu propósito era:
Se eu exportar, recebo um .reg:
fonte
Abra o prompt de comando [executar como administrador] e execute este comando
Para obter mais detalhes sobre mais recursos, execute: -
fonte