Kann ein Mac so programmiert werden, dass er das Drücken einer Taste mit einer bestimmten Geschwindigkeit per Software simuliert?

Gibt es eine Möglichkeit oder eine Anwendung eines Drittanbieters, mit der ich beispielsweise angeben kann, dass alle 5 Sekunden ein Tastaturereignis gesendet werden soll (damit es den gleichen Effekt hat wie das physische Drücken der Taste auf der Tastatur)?

Also könnte ich ihm zum Beispiel sagen, dass er Kalle 5 Sekunden zuschlagen soll, also insgesamt 15 Mal?

Grundsätzlich suche ich nach etwas wie AutoHotkey , aber für OS X.

Antworten (3)

Hier ist ein AppleScript, um zu tun, was Sie wollen:

set i to 0
repeat while i < 15
    set i to i + 1
    delay 5
    tell application "System Events" to keystroke "k"
end repeat

Sie können es wie folgt in ein Shell-Skript einfügen:

echo "set i to 0
repeat while i < 15
set i to i + 1
delay 5
tell application \"System Events\" to keystroke \"k\"
end repeat" | osascript

(Dank an @houbysoft für die echo "script" | osacriptSyntax!)

Automator habe ich noch nie benutzt. Würde es Ihnen etwas ausmachen, eine Schritt-für-Schritt-Anleitung zu teilen? Ich möchte in einem Webformular wiederholt die Eingabetaste drücken.

Ich habe einen Weg gefunden, dies in einem Bash-Skript zu tun:

#!/bin/sh
# Simulates hitting a key on OS X
# http://apple.stackexchange.com/a/63899/72339

echo "tell application \"System Events\" to keystroke \"$1\"" | osascript

Speichern unter hitkey, chmod +x hitkey, hitkey kum zu klicken K.

Von dort aus ist es einfach, Automator zu verwenden, um das Skript mehrmals zu durchlaufen oder einen iCal-Alarm zu erstellen, um das Skript zu einem bestimmten Zeitpunkt zu starten.

Automator-Dokumenttypen

Verpasst das nicht den ganzen Teil "Alle 5 Sekunden für insgesamt 15 Mal wiederholen"?
Ich wusste nichts über die echo "script" | osascriptSyntax - ich habe immer verwendet osascript -e "script". Dafür bekommst du +1.
@DanielLawson: Ja, aber mit dem Shell-Skript ist es einfach, es nach Belieben zu wiederholen.
Automator habe ich noch nie benutzt. Würde es Ihnen etwas ausmachen, eine Schritt-für-Schritt-Anleitung zu teilen? Ich möchte in einem Webformular wiederholt die Eingabetaste drücken.

Hier ist mein Arbeitsablauf

  1. Geben Sie in der Befehlszeile Strg + x und dann Strg + e ein, um Vim einzugeben, und geben Sie dort ein.

  2. unten eingeben ; Sie sehen, es gibt keinen Backslash.

     cat << EOF | osascript
     set repeat_number to 5
     set i to 1
     repeat while i <= repeat_number
     tell application "System Events" to keystroke "k"

     display notification "repeat keystroke " & i & "time"
     set i to i + 1
     delay 1
     end repeat
    EOF
  1. dann speichern Sie vim und beenden Sie den Befehl, vorausgesetzt, Sie wissen, wie man in vim aussteigt;)

    • Esc: wq
  2. Zurück zum Terminal, um oben eingegeben auszuführen.

+++ Ach noch was.

     cat | osascript
     display alert "typeing like Script Editor, no need to type backslash!"
     display notification "type ctrl + d to end typing and run it."
Die Verwendung catzusammen mit einem Hier-Dokument scheint ein bisschen übertrieben zu sein (Sie brauchen das catTeil nicht).
@nohillside Aaaah, Echos der „nutzlosen Nutzung von “-Auszeichnungen, die in den guten alten Usenet-Zeiten catregelmäßig verliehen wurden !comp.unix.shell