Ich versuche, ein AppleScript zu erstellen, das automatisch die rechte Pfeiltaste für 1 Sekunde und dann die linke Pfeiltaste für 1 Sekunde drückt und dies in einer Endlosschleife wiederholt, bis ich es unterbreche.
Folgendes habe ich bisher herausgefunden, aber es funktioniert nicht ganz:
tell application "VisualBoyAdvance"
repeat 100 times
tell application "VisualBoyAdvance" to keystroke "124"
delay 1
end repeat
end tell
Sie können Tastencodebefehle wiederholen, bis sich die vorderste Anwendung ändert:
delay 1
activate application "TextEdit"
tell application "System Events"
repeat while (path to frontmost application) is (path to application "TextEdit")
repeat 3 times
key code 123
delay 0.3
end repeat
repeat 3 times
key code 124
delay 0.3
end repeat
end repeat
end tell
Kürzere Verzögerungen (einschließlich 0,2 Sekunden) erschwerten das Stoppen des Skripts. Ich musste ⌥⇧⌘⎋ gedrückt halten, um das Beenden von TextEdit zu erzwingen.
Dies wurde nur einmal nach links verschoben:
delay 1
tell application "System Events"
key down (character id 28)
delay 5
key up (character id 28)
end tell
Ich habe gerade einige Tests durchgeführt: AppleScript ist für das, was Sie fragen, nicht gut geeignet, da es Single-Threaded ist. Daher scheint es nicht möglich, die Schleife in einer solchen Situation zu verlassen.
Hier ist ein Code, der tut, was Sie wollen, aber ohne die Schleife zu verlassen.
tell application "VisualBoyAdvance" to activate
repeat while true
set mydate to current date
repeat while ((current date) - mydate < 1)
tell application "System Events" to keystroke (key code 124) -- right
end repeat
repeat while ((current date) - mydate < 1)
tell application "System Events" to keystroke (key code 123) -- left
end repeat
end repeat
Wenn Sie es ausführen, friert es den Computer ein, indem es zu viele Ereignisse sendet.
kein Hang
Zwieback
aksh1t