У меня есть очень простой 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 чаще всего используется для написания сценария некоторого графического интерфейса (например, в вашем случае -> сообщите приложению 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!"
Даниэль
расческа