
Ich bin nicht sicher, ob Apple Script das ist, was ich brauche, aber es scheint das meiste zu tun, was ich brauche. Schlagen Sie gerne Alternativen vor.
Ich muss eine Figur zu einem genauen Zeitpunkt an ein Programm senden, um ein Countdown-Video zu starten. Das Apple-Skript, das ich habe, ist
tell application "ProPresenter 5"
activate
end tell
tell application "System Events"
keystroke "z"
end tell
Ich muss in der Lage sein, das an einem Tag um 10:40:25 Uhr und am nächsten Tag um 10:40:15 Uhr zu starten. Alle Anleitungen, die ich sehe, beinhalten den Kalender oder Automator, aber diese haben eine Auflösung von 1 Minute. Ich muss es auch nur etwa 20 Minuten im Voraus einrichten
Falls es wichtig ist, ich verwende OS X 10.8.5
Antwort1
Hier ist eine Kleinigkeit, die ich für Sie eingerichtet habe. Sie zeigt einen Dialog an, in dem Sie aufgefordert werden, die Zeit einzugeben, zu der Systemereignisse den Tastendruck senden sollen. Sie können dieses Skript als Anwendung speichern und es ausführen, wann immer Sie möchten. Eine andere Möglichkeit wäre, die ersten beiden Zeilen des Codes zu entfernen und durch Folgendes zu ersetzen … property requested_time : "10:40:25 AM”
. Dann können Sie das Skript einfach zu einem iCal-Ereignis hinzufügen, um es jeden Tag zu einer von Ihnen gewählten Zeit zu starten
set requested_time to display dialog "Please Enter Your Start Time With The Following Format: Hour:Minutes:Seconds" default answer "10:40:25 AM" buttons {"OK"} default button 1
set requested_time to text returned of requested_time
set theTime to time string of (current date)
tell application "ProPresenter 5" to launch -- Opens The App Without Bringing It Up Upfront. Added This Line To Make Sure Your Application Is Running When System Events Sends The Keystroke. You Can Always Remove This Line If You Prefer
repeat until theTime is greater than or equal to requested_time -- Added The "Greater Than" Just As A Failsafe
delay 1
set theTime to time string of (current date)
end repeat
tell application "ProPresenter 5" to activate
delay .5 -- My system did not need this delay. Yours may not either, but I added it just in case.
tell application "System Events"
keystroke "z"
end tell
Oder Sie speichern diese Version des Skripts als App.
property requested_time : "10:40:25 AM”
set theTime to time string of (current date)
tell application "ProPresenter 5" to launch -- Opens The App Without Bringing It Up Upfront. Added This Line To Make Sure Your Application Is Running When System Events Sends The Keystroke. You Can Always Remove This Line If You Prefer
repeat until theTime is greater than or equal to requested_time -- Added The "Greater Than" Just As A Failsafe
delay 1
set theTime to time string of (current date)
end repeat
tell application "ProPresenter 5" to activate
delay .5 -- My system did not need this delay. Yours may not either, but I added it just in case.
tell application "System Events"
keystroke "z"
end tell
Dann können Sie ein neues Kalenderereignis erstellen, das täglich wiederholt wird. 20 Minuten vorher wird das Skript gestartet, das Sie als App gespeichert haben.
Antwort2
Sie können einfach den AppleScript- delay
Befehl verwenden, um die minutengenaue Ausführung des Skripts um beliebige Sekunden zu verzögern.
Gemäß Ihrem Beispiel: Wenn Sie möchten, dass es um 10:40:25 ausgeführt wird, richten Sie Ihr Skript so ein, dass es um 10:40:00 ausgeführt wird, aber setzen Sie den Befehl delay 25
in die erste Zeile.