Autohotkey Ctrl + Shift - Zbrush / Photoshop

0

Eu tenho usado o Autohotkey por um longo tempo para remapear as teclas dentro dos softwares CG (principalmente Zbrush e Photoshop) para torná-los mais amigáveis.

Essencialmente, eu remapei as teclas do Numpad para as teclas que você não pode alterar dentro dos programas (Ctrl, Alt, Shift, etc ...). Dessa forma, posso usar minha caneta gráfica com a mão esquerda e acessar Ctrl, Alt, etc. usando o Numpad, o que é muito mais conveniente do que deslocar todo o teclado para a direita.

Enfim, aqui está o meu script:

 #IfWinActive, ahk_class ZBrush

 #MaxHotkeysPerInterval 200



 NumPad1::Alt

 Numpad2::LControl

 Right::Shift

 up::Space

 return

Muito simples, mas eu tenho um bug com isso desde que o criei há vários anos. Essencialmente, quando estou pressionando e segurando Numpad2 + Direita (Ctrl + Shift), e libero Numpad2, o programa se comporta como se eu ainda estivesse pressionando. Reprimindo o Numpad2, ele volta ao normal, mas é muito chato. Aqui estão algumas imagens para ilustrar melhor o problema:

Você sabe por que isso acontece? Eu não sou programador, então eu definitivamente poderia usar alguma ajuda.

    
por Manuel Boria 07.12.2013 / 21:53

2 respostas

0

The problem doesn't seem to happen when I release Right before Numpad2. It's as if pressing Right (Shift) prevented Numpad2 (Ctrl) from being released...

O problema que você está vendo é devido ao fato de que o teclado numérico é alterado por ⇧Shift . Pressionar ⇧Shift é semelhante a alternar a tecla NumLock , mas o efeito é mais complexo e não óbvio.

Por exemplo, pressionar Numpad-4 produziria os seguintes resultados:

          │ Num On │ Num Off
──────────┼────────┼───────────
Shift Off │   4    │    ←
──────────┼────────┼───────────
Shift On  │   ←    │ Shift + ←

Como você está remapeando para ser ⇧Shift e usá-lo em combinação com uma tecla no teclado numérico, você está obtendo uma interação que está complicando o AutoHotkey e confundindo você com seu resultado inesperado (pode muito bem ser o logicamente correto , mas certamente um resultado inesperado e indesejado).

Tente alterar sua chave secundária de Numpad-2 para outra coisa que não seja modificada por ⇧Shift , como K . Você notará que não receberá mais os resultados inesperados.

Esse comportamento ocorre no controlador de teclado, não no software, então, infelizmente, se você precisar usar ⇧Shift como um modificador, não será possível usar uma tecla numérica para remapeamentos complexos como este.

Uma opção é usar o bloco de edição ou as teclas numéricas que não são modificadas por ⇧Shift (os operadores matemáticos, Numpad-5 e Numpad-Enter ).

Outra opção é escrever um script mais complicado que crie um gancho de teclado para verificar chaves em um nível inferior, para que ele possa verificar se a tecla ⇧Shift está desativada, então compensar conforme necessário.


(Eu encontrei este mesmo problema há algum tempo, quando escrevi um programa de inserção de Unicode. Eu estava tentando fazer com que ele suportasse a troca de teclas de certos caracteres, mas a modificação estava atrapalhando as coisas. Eu acabei recorrendo à última sugestão e escrevendo um roteiro complicado, mas foi frustrante, vertiginoso e acabou sendo meio que limitado.)

    
por 08.12.2013 / 02:44
0

Uau! Resposta impressionante! Rápido e preciso. Muito obrigado. Eu não percebi que essas chaves foram modificadas por Shift, me dando esse comportamento chato. A coisa é que estou tão acostumada com esse remapeamento Numpad2 que não posso mudar isso sem passar semanas de readaptação psicomotora ^^

Consegui contornar o problema simplesmente fazendo o remapeamento do NumpadDown para o Ctrl ^^ Agora eu trabalho maravilhas!

NumPad1::Alt

Numpad2::Ctrl

NumpadDown::Ctrl

Right::Shift

up::Space

    return

Muito obrigado por apontar a origem do problema. Isso estava me incomodando há anos.

    
por 08.12.2013 / 11:10