Tecla de acceso rápido para mover el mouse y hacer clic

1

Actualmente estoy usando Keyboard maestro para crear una macro que me permite mover el cursor a ciertas coordenadas y hacer un clic izquierdo.

Lamentablemente, en Yosemite no funciona como se esperaba, ya que hace clic de forma esporádica (siempre mueve el cursor pero no hace clic cada vez).

¿Hay otras opciones viables para lograr esto? Sería genial si puedo establecer coordenadas en relación con la ventana activa.

    
pregunta KingBOB 14.03.2015 - 16:47

1 respuesta

1

Como una adaptación de @ mat-burns codifica en esta publicación (Tenga en cuenta que también necesitará xcode instalado).

       #!/usr/bin/env xcrun swift

import Foundation

let kDelayUSec : useconds_t = 500_000

func moveMouseClick( p1: CGPoint) {

    let mouseMove = CGEventCreateMouseEvent(nil, CGEventType(kCGEventLeftMouseDragged), p1, CGMouseButton(kCGMouseButtonLeft)).takeUnretainedValue()
    let mouseDown = CGEventCreateMouseEvent(nil, CGEventType(kCGEventLeftMouseDown), p1, CGMouseButton(kCGMouseButtonLeft)).takeUnretainedValue()
    let mouseUp = CGEventCreateMouseEvent(nil, CGEventType(kCGEventLeftMouseUp), p1, CGMouseButton(kCGMouseButtonLeft)).takeUnretainedValue()


    CGEventPost(CGEventTapLocation(kCGHIDEventTap), mouseMove)
    usleep(kDelayUSec)
    CGEventPost(CGEventTapLocation(kCGHIDEventTap), mouseDown)
    usleep(kDelayUSec)
    CGEventPost(CGEventTapLocation(kCGHIDEventTap), mouseUp)
}


func main() {

    let pointX = 396
    let pointY = 214

    let p1 = CGPointMake( CGFloat(pointX),  CGFloat(pointY))
    moveMouseClick( p1)


}

main()

Cambia las líneas:

let pointX = 396
let pointY = 214

para reflejar tu punto de clic.

Guarda este código como moveClick.swift

Y luego, en Terminal.app, ejecuta /bin/chmod +x ~/scripts/moveClick.swift para hacer que el script sea ejecutable

Cambie ~ / scripts / moveClick.swift a su ruta real a su archivo swift.

No tengo Keyboard maestro, pero veo que puede ejecutar un script de shell.

Ejecutar una acción de script de shell

~/scripts/moveClick.swift

En el ejemplo anterior, hemos codificado el punto de clic.

Pero si quiere que sea versátil, podemos hacer que el código tome argumentos.

Utilizando este código en su lugar.

    #!/usr/bin/env xcrun swift

import Foundation

let kDelayUSec : useconds_t = 500_000

func moveMouseClick( p1: CGPoint) {

    let mouseMove = CGEventCreateMouseEvent(nil, CGEventType(kCGEventLeftMouseDragged), p1, CGMouseButton(kCGMouseButtonLeft)).takeUnretainedValue()
    let mouseDown = CGEventCreateMouseEvent(nil, CGEventType(kCGEventLeftMouseDown), p1, CGMouseButton(kCGMouseButtonLeft)).takeUnretainedValue()
    let mouseUp = CGEventCreateMouseEvent(nil, CGEventType(kCGEventLeftMouseUp), p1, CGMouseButton(kCGMouseButtonLeft)).takeUnretainedValue()


    CGEventPost(CGEventTapLocation(kCGHIDEventTap), mouseMove)
    usleep(kDelayUSec)
    CGEventPost(CGEventTapLocation(kCGHIDEventTap), mouseDown)
    usleep(kDelayUSec)
    CGEventPost(CGEventTapLocation(kCGHIDEventTap), mouseUp)
}


func main() {

    let p1 = CGPointMake( CGFloat(atof( C_ARGV[1])),  CGFloat(atof( C_ARGV[2])))


    moveMouseClick( p1)


}

main()

Otra vez en Keyboard maestro.

Ejecutar una acción de script de shell

~/scripts/moveClick.swift 396, 214

    
respondido por el markhunte 15.03.2015 - 08:40

Lea otras preguntas en las etiquetas