Por que não posso passar o local do meu clique direito como argumento se não estou clicando em um objeto?

0

Por que não posso passar o local do meu clique direito para um programa como argumento se não estou clicando com o botão direito em um objeto?

Meu teste configurado: Windows 10, tenho o DebugViewer em execução e o meu programa something.exe exibe todos os argumentos que ele recebe para depurar.

Eu configurei estas entradas de registro no:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\TestYo2]
@="Directory Test"
[HKEY_CLASSES_ROOT\Directory\Background\shell\TestYo2\command]
@="c:\something.exe %1"

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\txtfile\shell\Try This]
@="Txt Menu"
[HKEY_CLASSES_ROOT\txtfile\shell\Try This\command]
@="c:\something.exe %1"

RESULTADOS: Quando clico com o botão direito em um arquivo de texto e seleciono meu "Menu Txt" no menu de contexto, inicializo meu programa e o transmito para o arquivo de texto. A localização do arquivo de texto no qual cliquei com o botão direito é impressa para depuração.

Se eu clicar com o botão direito do mouse no segundo plano de um diretório aberto e selecionar meu "Teste de diretório", esta mensagem será exibida: Este arquivo não possui um programa associado para executar esta ação. Por favor, instale um programa ou, se já estiver instalado, crie uma associação no painel de controle Programas Padrão. Meu programa nunca é ativado.

O que dá?

    
por Core2 07.08.2017 / 17:36

1 resposta

0

Então a solução é esta:

Adicione uma nova chave chamada NoWorkingDirectory e deixe os dados em branco.

Na linha de comando,% 1 se torna um% V

Agora, quando clico com o botão direito do mouse no fundo e seleciono meu item de menu, ele inicia meu programa e passa para o programa um argumento contendo a localização de onde o clique direito acabou de ocorrer. feito.

descobri-lo através deste post: shell do Windows adicionar item ao menu de contexto quando clicar na parte em branco da pasta

    
por 08.08.2017 / 15:45