Atalhos de teclado dentro de menus contextuais (Windows 10)

2

Por isso, acabei de criar um arquivo em minha área de trabalho com uma nova extensão, e é assim que o menu de contexto se parece:

Eupossoabriromenudecontextocomateclademenunomeutecladoe,naverdade,possoselecionaralgunsdositensnomenudecontextopressionandoasteclasdepoisdisso.Naturalmente,issomedáaoportunidadedecriaralgunsatalhosdeteclado.Noentanto,nãoentendomuitobemcomoelesfuncionam.Tomeoseguinteexemplo.

Seeucriarumarquivochamado"item.newextension" e, em seguida, importar o seguinte arquivo de registro:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.newextension\shell\Edit\command]
@="notepad.exe \"%1\""

[HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.newextension\shell\Contemplate\command]
@="mspaint.exe \"%1\""

Eu obtenho alguns resultados inconsistentes e interessantes. Para estar na mesma página, agora meu menu de contexto é assim:

Seeuabriromenudecontextoepressionaratecla"e", o bloco de notas será aberto imediatamente. Além disso, se eu abrir o menu de contexto e pressionar a tecla "c", o menu de contexto alterna entre "contemplar" e "copiar", mas não escolhe até que eu pressione enter.

Então, percebo que, se você olhar de perto, há uma pequena linha embaixo de cada letra na entrada do menu de contexto que corresponde a qual tecla precisa ser pressionada para selecioná-la e, quando há sobreposição, pressionar essa tecla repetidamente alterna entre os dois. Então eu tenho algumas perguntas:

  1. Quando eu crio minhas próprias entradas no menu de contexto, como fiz no arquivo .reg, como seleciono qual tecla é responsável por selecionar essa entrada?
  2. Posso alterar os atalhos de teclado existentes para itens como "Criar atalho" e "Copiar", ou eles sempre terão que ser "s" e "c" respectivamente?

Eu estou no Windows 10 1803 Build 17134 para referência.

    
por jippyjoe4 24.07.2018 / 00:31

1 resposta

2

Se houver vários itens de menu de contexto com a mesma tecla de atalho, pressionar essa tecla de atalho alternará entre eles conforme você descobriu. Se uma tecla de atalho corresponder apenas a um item, pressionar a tecla ativará imediatamente o item.

Evidentemente, o Windows está usando a primeira letra do texto do item como a tecla de atalho. Você pode substituir isso colocando um e comercial ( & ) antes da letra que você deseja se tornar a tecla de atalho. No entanto, isso deve ser feito no valor padrão da chave do Registro do comando, não no nome da chave. Nesta imagem, eu tentei mudar a tecla de atalho para Contemplate para O e a tecla de atalho para Editar para I :

Ambosparecemfuncionarporqueaconfiguraçãoacimaproduzestemenudecontexto:

PressionarOimediatamenteacionaoContemplate,maspressionarInãofaznadamesmoquenenhumoutroitemnomeumenuuseI.AlterarEditarparaterumnomedechaveseme-mails,masumvalorpadrãodeEd&itfazcomquefuncionecomoesperado.

Nãoháumamaneiradiretadealterarositensdomenudecontextointerno,comoCopiar;elesnãoestãonoRegistroesãogeradospeloExplorer.Vocêpodesercapazdeescreverumaextensãodeshellqueuse SetMenuItemInfo com as estruturas de informações de menu apropriadas para alterá-las em tempo de execução . Para uma resposta mais antiga , eu escrevi uma extensão do shell para alterar os ícones dos itens internos que podem ser um bom ponto de partida.

    
por 25.07.2018 / 19:10