1 votes

Touche de raccourci pour déplacer la souris et cliquer

J'utilise actuellement Keyboard maestro pour créer une macro qui me permet de déplacer le curseur à certaines coordonnées et d'effectuer un clic gauche.

Malheureusement, sous Yosemite, il ne fonctionne pas comme prévu, car il clique sporadiquement (il déplace toujours le curseur mais ne clique pas à chaque fois).

Existe-t-il d'autres options viables pour y parvenir ? Ce serait formidable si je pouvais définir les coordonnées par rapport à la fenêtre active.

1voto

markhunte Points 11634

Comme une adaptation du code de @mat-burns en ce poste ( Note Vous aurez également besoin xcode installé. )

       #!/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()

Changez les lignes :

let pointX = 396
let pointY = 214

pour refléter votre point de clic.

Sauvegarder ce code en bas comme moveClick.swift

Et ensuite, dans Terminal.app, exécutez /bin/chmod +x ~/scripts/moveClick.swift pour rendre le script exécutable

Remplacez ~/scripts/moveClick.swift par votre chemin d'accès réel à votre fichier swift.

Je n'ai pas Keyboard maestro Mais je vois qu'il peut exécuter un shell script.

Exécuter un script Shell Action

~/scripts/moveClick.swift


Dans l'exemple ci-dessus, nous avons codé en dur le point de clic.

Mais si vous voulez le rendre polyvalent, nous pouvons faire en sorte que le code prenne des arguments.

En utilisant ce code à la place.

    #!/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()

Encore une fois dans Keyboard maestro.

Exécuter un script Shell Action

~/scripts/moveClick.swift 396, 214

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X