Alterne Ctrl e Alt com AutoHotKey sem desordenar o alternador Alt-Tab?

4

Eu quero mudar as teclas Ctrl e Alt no Windows XP. Eu criei um script AutoHotKey que contém o seguinte:

LAlt::LCtrl
RAlt::RCtrl

LCtrl::LAlt
RCtrl::RAlt

Isso funciona, mas o único problema é que o alternador Alt-Tab fica preso. Quando eu libero o Alt-Tab, o alternador de janela permanece ativo até eu pressionar outra tecla ou clicar com o mouse.

Alguém sabe como corrigir esse problema?

    
por davidscolgan 22.10.2010 / 16:11

4 respostas

3

Eu gostaria de alternar Alt e Ctrl porque atualmente sou um usuário do Mac em Window (com um teclado de PC). Todas as teclas de atalho no Mac: Cmd + n, Cmd + w ... - > PC: Ctrl + n, Ctrl + w e Cmd tem o mesmo lugar que a tecla Alt.

Eu encontrei uma solução não perfeita:

Mapeie todas as letras assim:

LAlt & a::Send {LCtrl Down}{a}{LCtrl Up}
...
LAlt & z::Send {LCtrl Down}{z}{LCtrl Up}
LCtrl & a::Send {LAlt Down}{a}{LAlt Up}
...
LCtrl & z::Send {LAlt Down}{z}{LAlt Up}

E você vai manter Alt + Tab e AltGr funcionais

Esta é a minha implementação completa (não completa): link

    
por 11.03.2011 / 17:41
1

Eu estava procurando a mesma coisa e encontrei algo que funciona sem plugins ou outros programas. Você pode fazê-lo usando o registro conforme descrito aqui .

Como alternativa, basta criar 2 arquivos reg. Primeiro o arquivo para alternar a tecla Ctrl para Alt.

switch_ctrl-to-alt.reg

Isso adiciona a chave necessária ao registro.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1D,00,38,00,38,00,1D,00,00,00,00,00

E, em seguida, o arquivo para alternar o Alt de volta para a tecla Ctrl.

switch_alt-to-ctrl.reg

Isso remove a chave necessária do registro.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=-

Depois de clicar duas vezes no reg-file, você precisa reiniciar e é bom.

    
por 27.05.2013 / 09:11
1

Se você é um usuário de Mac (ou mesmo se você não é), é possível que você pense que queira trocar Control e Alt, mas talvez tudo que você realmente precise é trocar

Alt-A até Alt-Z e algumas teclas extras (setas, [e]).

Tente isso, para fins de teste, só estou ativo no Chrome.

#IfWinActive ahk_exe chrome.exe
![::Send !{Left}
!]::Send !{Right}
!a::Send ^a
!b::Send ^b
!c::Send ^c
!d::Send ^d
!e::Send ^e
!f::Send ^f
!g::Send ^g
!h::Send ^h
!i::Send ^i
!j::Send ^j
!k::Send ^k
!l::Send ^l
!m::Send ^m
!n::Send ^n
!o::Send ^o
!p::Send ^p
!q::Send ^q
!r::Send ^r
!s::Send ^s
!t::Send ^t
!u::Send ^u
!v::Send ^v
!w::Send ^w
!x::Send ^x
!y::Send ^y
!z::Send ^z

!Right::
Send {End}
return

*!Right:: ; This handles Shift-Right
Send {Blind}{LAlt Up}{End}
return

!Left::
Send {Home}
return

*!Left:: ; This handles Shift-Left
Send {Blind}{Alt Up}{Home}
return

Você deve poder desenvolver isso. Esses são os atalhos de Mac mais frequentes que me pegam.

    
por 04.07.2016 / 04:02
1

Isso funciona para mim:

; First, swap LAlt and Ctrl
LAlt::Ctrl

; This reverts the Alt+Tab behavior
^Tab::
    Send, {LAlt Down}{Tab}
    ReleaseLAlt(10000)

; The purpose of this function is to release the LAlt key
; Without this, the LAlt key will be stuck
ReleaseLAlt(timeout := "")
{
    startTime := A_Tickcount

    while (isaKeyPhysicallyDown("LAlt"))
    {
        if (timeout && A_Tickcount - startTime >= timeout)
            Send, {LAlt Up} ; Took too long

        sleep, 50
    }

    Send, {LAlt Up}
} 

isaKeyPhysicallyDown(Keys)
{
  if isobject(Keys)
  {
    for Index, Key in Keys
      if getkeystate(Key, "P")
        return key  
  }
  else if getkeystate(Keys, "P")
    return Keys ;keys!
  return 0
}
    
por 21.02.2017 / 09:20