Führen Sie ein AppleScript aus, das Tastenanschläge erfordert, während der Bildschirm gesperrt ist?

Ich habe ein sehr einfaches AppleScript, dessen Aufgabe es ist, einige Wörter in ein Textfeld einzugeben.

tell application "TextEdit"
  activate
end tell
delay 0.2
tell application "System Events"
  keystroke "Hello World!"
  keystroke return
end tell

Ich möchte, dass dieses Skript jedes Mal ausgeführt wird, wenn mein Bildschirmschoner aktiviert wird, und jedes Mal, wenn mein Bildschirmschoner deaktiviert wird. Ich habe ScriptSaver installiert und es funktioniert perfekt. So weit, ist es gut.

Außer meine Bildschirmsperre, wenn der Bildschirmschoner aktiviert wird. Das bedeutet, wenn mein Skript TextEdit zur Aktivierung auffordert, öffnet der Computer sein Anmeldefenster und denkt, ich tippe "Hello World!" als Passwort. Nicht ideal.

Ich habe versucht, dass der Bildschirmschoner nach 5 Sekunden ein Passwort verlangt, anstatt sofort, aber das war nicht gut: Der Prozess der Aktivierung von TextEdit weckt den Bildschirm nur wieder auf.

Gibt es eine Möglichkeit, TextEdit zu aktivieren und im Hintergrund Wörter einzugeben , ohne dass mein Computer denkt, ich versuche, den Bildschirm zu entsperren?

Sind Sie an die Verwendung von AppleScript gebunden?
@Daniel: Überhaupt nicht; es ist nur das, womit ich am vertrautesten bin.

Antworten (2)

Nein, ich glaube nicht, dass du das so machen kannst, wie du willst.

  1. Jede menschliche Interaktion auf einem PC während des Bildschirmschoners versucht, ihn zu deaktivieren. (Wie Bewegen der Maus, Drücken einer Taste zB)

  2. Applescript wird die meiste Zeit verwendet, um eine GUI zu skripten (wie in Ihrem Fall --> TextEdit der Anwendung mitteilen -> tut nichts anderes, als TextEdit zu öffnen, als würden Sie es durch Doppelklicken tun)

Um Ihnen also einen Weg zu bringen, der funktionieren sollte:

Führen Sie ein Applescript aus, das den Text direkt in eine Datei schreibt, und öffnen Sie dann bei Bedarf die Datei mit dem darin enthaltenen Text.

etwas wie das:

tell application System Events
    do shell script "echo 'your text that you wanna type' > /path/to/the/file/where/the/text/stands/in"
end tell

tell application TextEdit
    open /path/to/the/file/where/the/text/stands/in
end tell

Hast du es versucht (ich weiß nicht, ob es funktioniert):

activate application "TextEdit"
delay 0.2
tell application "System Events" to tell process "TextEdit" to keystroke "Hello World!"