Use o trackball para rolar, aplicar zoom, etc.

5

Eu tenho um Logitech Marble Trackball (que é ótimo, btw). Ao definir um dos botões extras como um botão do meio do mouse, quando eu clico nele, muitos aplicativos (como navegadores) iniciam o "modo de rolagem" para que mover o trackball role para cima e para baixo. Na maioria das vezes, isso é suficiente, mas acho que seria muito mais legal se eu pudesse ter vários "modos" para fazer coisas diferentes, como zoom, pan, rotação (particularmente no GIMP). Então, quando eu mantenho CTRL, CTRL + SHIFT, ou algo assim, ele entra em um novo modo, e o trackball se comportará de maneira diferente.

Eu encontrei algumas perguntas semelhantes a esta que sugerem o uso de AutoHotKey, mas eu não encontrei um script de exemplo para fazer isso, nem posso descobrir para rastrear movimentos do mouse dentro do AHK. Quaisquer ponteiros?

tecla de atalho para a roda de rolagem

remédio para um trackball sem roda de rolagem?

Obrigado!

    
por jdve 19.03.2012 / 02:35

1 resposta

3

Depois de mexer por um bom tempo, eu criei esse script que funciona razoavelmente bem. Segurar CapsLock entra no modo "roda do mouse". Também é possível manter o CapsLock + Ctrl para obter um comportamento alternativo (como o zoom), dependendo do aplicativo. O script precisa redefinir constantemente a posição do mouse para mantê-lo na tela, para que ele esconda o cursor durante a duração do modo (pegue o script de ocultação do cursor também.

CoordMode, Mouse, Screen

*CapsLock:: 
    MouseGetPos, xposinit, yposinit
    xposlast := xposinit
    yposlast := yposinit

    SystemCursor("Off")

    SetTimer, ButtonHold, 10
    KeyWait, CapsLock
    SetTimer, ButtonHold, off

    MouseMove, xposinit, yposinit, 0
    SystemCursor("On")

    Return

    ButtonHold:
        MouseGetPos, xpos, ypos

        if (ypos > yposlast) {
            MouseClick, WheelDown
        } else if (ypos < yposlast) {
            MouseClick, WheelUp
        }

        MouseMove, xposlast, yposlast, 0
    
por 20.03.2012 / 00:13