Запустить AppleScript, который требует нажатия клавиш, когда экран заблокирован?

У меня есть очень простой AppleScript, задача которого — ввести несколько слов в текстовое поле.

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

Я хочу, чтобы этот скрипт запускался каждый раз, когда активируется моя экранная заставка, и снова каждый раз, когда моя экранная заставка деактивируется. Я установил ScriptSaver , и он отлично работает. Все идет нормально.

За исключением того, что мой экран блокируется, когда активируется заставка. Это означает, что когда мой сценарий сообщает TextEdit об активации, компьютер выводит окно входа в систему и думает, что я набираю «Hello World!». в качестве пароля. Не идеально.

Я попытался заставить экранную заставку запрашивать пароль через 5 секунд, а не сразу, но это было бесполезно: процесс активации TextEdit просто снова пробуждает экран.

Есть ли способ активировать TextEdit и вводить в него слова в фоновом режиме , не заставляя мой компьютер думать, что я пытаюсь разблокировать экран?

Вы привязаны к использованию AppleScript?
@Daniel: Вовсе нет; это просто то, с чем я больше всего знаком.

Ответы (2)

Нет, я не думаю, что ты можешь сделать это так, как хочешь.

  1. Каждое взаимодействие человека с компьютером во время заставки пытается ее отключить. (например, перемещение мыши, нажатие клавиши)

  2. Applescript чаще всего используется для написания сценария некоторого графического интерфейса (например, в вашем случае -> сообщите приложению TextEdit -> не делает ничего, кроме открытия TextEdit, как если бы вы делали это двойным щелчком)

Итак, чтобы предложить вам способ, который должен работать:

сделайте яблочный скрипт, который записывает текст напрямую в файл, а затем, при необходимости, открывает файл с текстом в нем.

что-то вроде этого:

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

Вы пробовали (не знаю, сработает ли):

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