4

Я думал, что это будет просто ...

Мне нужен AppleScript, который запускает Plain Clip, а затем вставляет буфер обмена в текущий документ, где находится курсор. Мой скрипт запускает Plain Clip (приложение для очистки форматов, которое не захватывает фокус), но оно не вставляет новый буфер обмена. Есть идеи?

tell application "Plain Clip" to activate
delay 1
tell application "System Events" to tell (name of application processes whose frontmost is true) to keystroke "v" using {command down}

3 ответа3

2

Так как вы в любом случае переносите буфер обмена в открытый текст, вы можете закончить, написав сценарий на клавиатуре, а не на сценарии Plain Clip.

do shell script "pbpaste |textutil -convert txt -stdin -stdout -encoding 30 |pbcopy"
tell application "System Events" to keystroke (the clipboard)

ps та первая строка делает то же самое, что и Plain Clip.
Сценарии pps Системные события требуют наличия доступа для вспомогательных устройств .

1

Я запустил ваш сценарий, и он работал нормально для меня. Какую ОС вы используете?

Другой вариант - использовать AppleScript для запуска сценария оболочки с доступом к параметру командной строки PlainClip:

tell application "System Events" to tell (name of application processes whose frontmost is true) to do shell script "'/Applications/Plain Clip.app/pc' -v"
0

Вот как я решил свою проблему:

delay 0.2
do shell script "'/Applications/Plain Clip.app/pc' -w -l -m -i -s -a -v"

Спасибо, парни.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .