AutoHotKey Ctrl no Caps Lock não funciona com shift

0

Eu não tenho dedos grandes nem posso pressionar a tecla Ctrl com a palma da mão. Como eu uso o ctrl para tantas teclas de atalho, tive que remapear para o botão capslock. Eu vivi com ele bem usando o método de registro para trocar ctrl e caps, mas agora eu preciso compartilhar este teclado para programação em pares. O principal problema que estou tendo é que eu não posso mais usar os atalhos Ctrl-Shift com o botão Capslock. Aqui está o meu script autohotkey.

+Space::Send _
#InstallKeybdHook
Capslock::
Send {LControl Down}
KeyWait, CapsLock
Send {LControl Up}
if ( A_PriorKey = "CapsLock" )
{
 if GetKeyState("CapsLock", "T") = 1
 {
   SetCapsLockState, off
 }
 else if GetKeyState("CapsLock", "F") = 0
 {
   SetCapsLockState, on
 }
}
return

Observe que também tenho uma linha para o espaço de turno para enviar um sublinhado. Eu não sei como configurar isso para cobrir todos os buracos possíveis. Eu aprecio qualquer entrada na otimização deste script.

    
por José Tony Stark Peña 22.07.2015 / 08:21

1 resposta

0

Obrigado ao + Dymn na #ahk por me ajudar com isso e por resolver todos os erros comigo. Alguns dos defeitos que encontramos são Ctrl + Shift + só funciona quando Ctrl é o primeiro pressionado, Capslock fica pressionado alternando CAPS quando não é a primeira tecla pressionada, mesmo que outra tecla tenha sido pressionada antes ou depois, e outros. Eu testei isso e parece ser muito mais robusto, sem bugs aparentes.

#InstallKeybdHook
+Space::Send _
CapsLock::
#UseHook On
Send {LControl Down}
KeyWait,CapsLock
Send {LControl Up}
KeyWait, CapsLock
IF (A_PriorKey = "CapsLock") {
  IF GetKeyState("CapsLock", "T") = 1 {
    SetCapsLockState, OFF
  }
  Else If GetKeyState("CapsLock", "F") = 0 {
    SetCapsLockState, ON
  }
}
Return
+CapsLock::
Send {LControl Down}
KeyWait,CapsLock
Send {LControl Up}
Return
#UseHook OFF

Esse script é inestimável para mim. Eu só espero que alguém o ache tão útil quanto eu.

    
por 23.07.2015 / 04:53