Ошибка Applescript не может сделать текст Unicode - PullRequest
2 голосов
/ 03 мая 2011

Я пытаюсь написать простой скрипт appleScript, чтобы получить содержимое WriteRoom (простого текстового редактора) и запустить его через анализатор уценки, а затем скопировать полученный HTML-код в буфер обмена:

tell application "WriteRoom" to activate
tell application "System Events" to keystroke "a" using command down
tell application "System Events" to keystroke "c" using command down
set the clipboard to (do shell script "cd ~;echo \"" & (the clipboard) & "\" >> writeroom.md; /usr/local/bin/markdown writeroom.md")

но когда я запускаю его, я получаю сообщение об ошибке иногда :

 Can’t make {«class RTF »:«data RTF 7B5C727466315C616E73695C616E7369637067313235325C636F636F61727466313033385C636F636F617375627274663335300A7B5C666F6E7474626C5C66305C6673776973735C6663686172736574302048656C7665746963613B7D0A7B5C636F6C6F7274626C3B5C7265643235355C677265656E3235355C626C75653235353B7D0A5C706172645C74783536305C7478313132305C7478313638305C7478323234305C7478323830305C7478333336305C7478333932305C7478343438305C7478353034305C7478353630305C7478363136305C7478363732305C716C5C716E61747572616C5C7061726469726E61747572616C0A0A5C66305C66733332205C636630202A20746573745C0A2A20617364665C0A2A206E6F5C0A2A207465737474657374746573747D», «class utf8»:"* test
* asdf
* no
* testtesttest", «class ut16»:"* test
* asdf
* no
* testtesttest", uniform styles:«data ustl0200000090000000000000001400000020000000010000002100000000000000010000006C000000040000000000000000000000020100000100000000000000050100002C000000646D616E2400000001000000040000000100000000000000000000000900000048656C76657469636100000006010000040000000000100007010000060000000000000000000000»} into type Unicode text.

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

Ответы [ 2 ]

2 голосов
/ 03 мая 2011

Кажется, что текст из вашего приложения копируется как поток RTF.Чтобы преобразовать его в простой текст, попробуйте использовать as text:

(the clipboard as text)

Обновление

После прочтения вашего вопроса, я скачал WriteRoom и пришелс этим решением:

tell application "WriteRoom" to activate
tell application "System Events"
    tell application process "WriteRoom"
        set content to (value of text area 1 of scroll area 1 of front window) as text
    end tell
end tell

display dialog content

Затем вы можете использовать переменную content для дальнейшей обработки.Используйте программу Mac Инспектор специальных возможностей , чтобы узнать определение пользовательского интерфейса любого окна, как я.

1 голос
/ 27 августа 2014

Это старый вопрос, и я вижу, вы получили исправление.Но, увидев, что я получаю то же самое "Произошла ошибка типа -25130. Номер -25130" с Applescript (не используя WriteRoom, используя Sigil), я обнаружил другое исправление в этих случаях.

Часто очень важно добавить небольшой delay с использованием сценариев GUI.И даже с некоторым предварительно выбранным текстом и просто с одним keystroke я получил эту ошибку.Не так, если delay 0.1 до и после keystroke (или вам нужно играть с другой задержкой 0,2 и т. Д.).

delay 0.1
tell application "System Events" to keystroke "c" using command down
delay 0.1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...