Como posso usar o teclado para simular a rolagem do mouse com a tecla AutoHotkey?

13

Estou procurando uma maneira de rolar com o teclado usando o AutoHotkey. Também seria ótimo se eu pudesse ajustar a velocidade de rolagem de alguma forma.

    
por Jarek 09.03.2011 / 11:00

4 respostas

12

Você pode usar a função MouseClick para simular a roda do mouse. Aqui está um script de exemplo que permite rolar pressionando a tecla CapsLock e pressionando 'w' para rolar para cima ou para baixo:

CapsLock & w::
 MouseClick,WheelUp,,,10,0,D,R
return

CapsLock & s::
 MouseClick,WheelDown,,,10,0,D,R
return

Você pode fazer isso mais rápido alterando o 10 para um valor maior. É o número de "detentores" que você quer que a roda percorra.

Há também um script em autohotkey.com que configura todos os botões e movimentos do mouse em o teclado numérico, embora eu não tenha tentado.

    
por 14.03.2011 / 05:13
1

Teclas de atalho da roda do mouse [Windows NT / 2000 / XP ou posterior]

Teclas de atalho que são disparadas ao girar a roda do mouse são suportadas pelos nomes das teclas WheelDown e WheelUp . WheelLeft e WheelRight também são suportados em v1.0.48 +, mas não têm efeito em sistemas operacionais mais antigos que o Windows Vista. Aqui estão alguns exemplos de teclas de atalho do mouse:

MButton & WheelDown::MsgBox You turned the mouse wheel down while holding down the middle button.
^!WheelUp::MsgBox You rotated the wheel up while holding down Control+Alt.

Em v1.0.43.03 +, a variável incorporada A_EventInfo contém a quantidade pela qual a roda foi girada, o que é tipicamente 1. No entanto, A_EventInfo pode ser maior ou menor que 1 em nas seguintes circunstâncias:

  • Se o hardware do mouse relatar distâncias inferiores a um entalhe, A_EventInfo poderá conter 0;
  • Se a roda estiver sendo girada rapidamente (dependendo do tipo de mouse), A_EventInfo pode ser maior que 1. Uma tecla de atalho como a seguinte pode ajudar a analisar seu mouse: ~WheelDown::ToolTip %A_EventInfo%

Algumas das teclas de atalho mais úteis para a roda do mouse envolvem modos alternados de rolar o texto de uma janela. Por exemplo, o par de teclas de atalho a seguir rola horizontalmente em vez de verticalmente quando você gira a roda enquanto pressiona a tecla Control esquerda:

~LControl & WheelUp::  ; Scroll left.  
ControlGetFocus, fcontrol, A  
Loop 2  ; <-- Increase this value to scroll faster.  
    SendMessage, 0x114, 0, 0, %fcontrol%, A  ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINELEFT.  
return  

~LControl & WheelDown::  ; Scroll right.  
ControlGetFocus, fcontrol, A  
Loop 2  ; <-- Increase this value to scroll faster.  
    SendMessage, 0x114, 1, 0, %fcontrol%, A  ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINERIGHT.  
return  

Por fim, como as teclas de atalho da roda do mouse geram apenas eventos descendente (nunca up-events), elas não podem ser usadas como teclas de atalho de teclado .

[Fonte: Aqui ]

    
por 09.03.2011 / 12:38
1

Este é um script que acabei de desenvolver. Pressione as teclas de seta 0 e para cima ou para baixo para operar. Se você não tiver um numpad em seu computador, poderá personalizar as duas teclas como quiser. Ele funciona para que você mantenha pressionada 0 e uma tecla de seta e continue rolando a velocidade. Talvez melhor que uma roda de rolagem?

0 & Up::
Loop
{
Send {WheelUp}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
  Break
}
Return

0 & Down::
Loop
{
Send {WheelDown}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
  Break
}
Return
    
por 30.05.2013 / 08:22
0

Eu recomendo a solução de link

Pessoalmente prefiro usar LWin key como modificador (para evitar colisões com a ligação de chaves do Emacs):

LWin & PgUp::
  Send {WheelUp}
Return

LWin & PgDn::
  Send {WheelDown}
Return

Esta solução distinta da solução yhw42 tão simples quanto entender e usar padrão configurações do Windows para rolagem (o quão rápido para rolar).

OBSERVAÇÃO Essas técnicas são úteis em notebooks (como o touchpad pode ser inútil para alguns usuários) e para usuários que não gostam de mouse. Rato evento enviar para elementos da GUI ativa, então você precisa de um local adequado para o mouse posição.

    
por 30.07.2011 / 08:28

Tags