Maus bewegen (nicht klicken) per AppleScript?

mymomo

Aktives Mitglied
Thread Starter
Dabei seit
06.10.2006
Beiträge
449
Reaktionspunkte
28
Moin!
Kann man per AppleScript eine Mausbewegung simulieren?
Ich weiß das es die Möglichkeit gibt einen Mausklick zu machen, jedoch möchte ich tatsächlich nur die Maus an eine bestimmte Stelle bewegen, OHNE hier zu klicken.

Geht das und wenn ja, wie würde das Script lauten, um zB die Maus an X=1000 und Y=500 zu bewegen?
 
Nein, bzw. jein.

Man kann ein shellscript mit mousetool aus AppleScript heraus auslösen.

Hab’s schon paar mal gemacht. Bin aber unterwegs und kann erst später oder morgen was dazu posten.

Aber das ist doch nicht schwer zu googeln.
 
@mausfang wäre top wenn du es mal posten könntest. Hab natürlich schon ein wenig gegoogelt, aber da geht es immer um einen Mausklick - den will ich nicht haben.
 
Zum weiteren Verständnis. Was ist das Ziel der Mauszeigerpositionierung?
 
Gerne der Kontext dazu:

Ich nutze ein Tool „Touchportal“. Das ist quasi ein StreamDeck, nur eben das man für die Anzeige ein Andriod oder iOS Gerät hernimmt.

Jetzt möchte ich darauf ein Makro legen, welches zB eine automatische Anmeldung an einer Webseite ermöglicht. Da diese je nach Ladezeit eben dauert, habe ich zusätzlich ein Plugin für TouchPortal am laufen, welches die Farbe unter der Maus speichern kann.

Nun möchte ich über dieses AppleScript (was von TouchPortal unterstützt wird) den LoginButton ansteuern und über eine Schleife alle 500ms abfragen ob die Farbe nun korrekt ist und erst dann das Makro weiter ablaufen lassen.
 
Wo ist das Problem?
C-ähnlich:
move mouse {x,y}
evtl noch ein Delay davor und danach.
 
Ich denke, du müsstest das dem eventuell Browser sagen…
Hab kein macOS zur Hand, kann das auf iOS nicht testen, sorry.
 
Delay mach ich über das Tool…
Also folgend wäre es richtig?:
Ist kein valider Apple Script Code ...

Sieht man auch schon am Syntax-Highlighting ...

Bildschirmfoto 2023-01-21 um 20.20.58.png
 
AppleScript:
my move_mouse_and_lclick(720, 145)

on move_mouse_and_lclick(xValue, yValue)
    -- set external dependency path   
    set mouseToolsPath to "/usr/local/bin/mousetools"
    
    -- delay before
    delay 0.2
    
    -- click once (double click not possible)
    do shell script quoted form of POSIX path of mouseToolsPath & " -x " & (xValue as text) & " -y " & (yValue as text) & " -leftClick"
    
end move_mouse_and_lclick

Hier ist es auch noch ganz gut beschrieben: https://www.macscripter.net/t/mousetools-perform-clicks-and-other-stuff-with-your-mouse/59282

Und dann brauchst halt die Binaries von mousetools im entsprechenden Ordner. (Den Linksklick kannst aus dem Code ja wieder ausbauen. Ich finde leider den Downloadlink nicht mehr ... scheint irgendwie leider nicht mehr verfügbar ... vielleicht kann ich es noch finden.
 
hey!
zunächst danke für deine Mühe... leider war ich den Tag über nicht Zuhause um deinen Lösungsansatz weiter aufzugreifen.
bei Apfeltalk hat jemand jedoch die folgende Lösung für mein Problem gepostet, welche ebenfalls funktioniert:

use framework "CoreGraphics"
set theCGError to current application's CGWarpMouseCursorPosition({x:1000.0, y:500.0})
 
Hi MyMomo, ich bin relativ neu in der Mac-Welt und würde gerne wissen, wie ich diesen Befehl umsetzen kann?

use framework "CoreGraphics"
set theCGError to current application's CGWarpMouseCursorPosition({x:1000.0, y:500.0})

Wo genau muss ich das eingeben, könntest du mir mit einer etwas ausführlicheren Antwort weiterhelfen? Ich habe jetzt Xcode gedownloadet, bin mir aber nicht sicher, ob es das richtige Programm ist...

Mein Ziel ist es den Maus-Zeiger auf den grünen Button zum Mini- und Maximieren der Fenster zu bewegen und diesen dort verweilen zu lassen, sodass das daraus resultierende Options-Fenster angezeigt wird. Ich habe das Problem, dass ich in Cubase (Ein Programm zum Aufnehmen von Musik) im Menüfenster unter dem Reiter "Fenster" nicht die Option zum Verschieben des Fensters auf einen externen Bildschirm angezeigt bekomme. In allen anderen Programmen wird dies dort angezeigt, und ich habe auch einen Shortcut für diesen Befehl hinterlegt.

In Cubase könnte ich den Shortcut realisieren, wenn ich den Mauszeiger auf dem grünen Button solange verweilen lasse, bis das Options-Fenster aufklappt und ich dann meinen Shortcut eingeben kann. Das Alles könnte ich dann halt über die jeweiligen Shortcuts in AppleScript so zusammenfassen, dass alles mit einem Klick auf einem externen Controller abläuft. Würde mir über die kommenden Jahre, Monate, Tage und Stunden, die ich an und mit dem Programm und dem Musizieren verbringen werde, einiges an Nerven ersparen.

Ich danke jedem hier für eine Hilfe.
 
Zuletzt bearbeitet:
Könntest du mir bitte einen Screenshot schicken, wie dieser Code im Skript Editor eingebettet ist? Ich versuche es in die Programmierzeilen in Shortcuts AppleScript einzugeben, aber der Code wird nicht übernommen. Ich bin leider noch ein absoluter Anfänger.

Okay im Skript Editor funktioniert es wohl, mal schauen ob ich das auch in Shortcuts hinbekomme...
 
Das CGWarpMouse gehört auf eine eigene Zeile.
Wahrscheinlich muss useFramework auch am Anfang stehen.
Was kriegst denn für einen Fehler, wenn du auf den Hammer klickst?
 
Das hier wird mir dann angezeigt...

Hast du eine andere Idee, wie ich das Skript als Kurzbefehl abrufen kann?
Ich dachte, dass geht nur, wenn man sein AppleScript in Shortcuts angelegt hat.
 

Anhänge

  • Fehlermeldung.png
    Fehlermeldung.png
    43,1 KB · Aufrufe: 61
Zurück
Oben Unten