1 votos

Tecla de acceso directo para mover el ratón y hacer clic

Actualmente estoy usando Keyboard maestro para crear una macro que me permita mover el cursor a ciertas coordenadas y realizar 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 siempre).

¿Existen otras opciones viables para conseguirlo? Sería estupendo poder establecer las coordenadas relativamente a la ventana activa.

1voto

Malik hassan Puntos 16

Como una adaptación del código de @mat-burns en este puesto ( Nota También necesitarás 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 su punto de clic.

Guarda este código como moveClick.swift

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

Cambie ~/scripts/moveClick.swift por la ruta real de su archivo swift.

No tengo Keyboard maestro Pero veo que puede ejecutar un shell script.

Ejecutar una acción Shell script

~/scripts/moveClick.swift


En el ejemplo anterior hemos codificado el punto de clic.

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

Usando 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()

De nuevo en Keyboard maestro.

Ejecutar una acción Shell script

~/scripts/moveClick.swift 396, 214

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X