ОК, поэтому я немного покопался и думаю, что нашел причину. Для начала, я хотел бы добавить, что раньше это работало в течение нескольких лет, но перестало работать в обновлении ma c около года go.
Вот сценарий «проверки концепции», который я использую в редакторе сценариев:
set clipBefore to the clipboard
log clipBefore
set the clipboard to "banana"
log (the clipboard)
set the clipboard to clipBefore
log (the clipboard)
Если я перезагружаю свою машину, сначала откройте редактор сценариев, и запустить мой скрипт, я получаю это в журналах:
error "An error of type -25133 has occurred." number -25133
Я посмотрел вокруг, и этот код ошибки
badPasteboardFlavorErr = -25133, /* item flavor does not exist*/
, который говорит мне, что есть некоторая проблема с системой работа с буфером обмена? Я не могу точно сказать, когда это произойдет, но иногда это также происходит, если моя машина была заблокирована достаточно долго, я разблокирую ее и запускаю скрипт.
Решение всегда состоит в том, чтобы просто выполнить ctrl + c чего-либо и затем снова запустить сценарий.
Я решил свой сценарий (который, конечно, многое делает раньше и после моего частичного кода), добавив try catch catch в материале буфера обмена:
local clipBefore
set clipBefore to ""
try
set clipBefore to the clipboard
end try
set the clipboard to pass_word
Поскольку он генерирует исключение только в том случае, если в буфере обмена ничего нет, теперь он работает каждый раз:)