开发者

Applescript Error cannot make to unicode text

开发者 https://www.devze.com 2023-03-02 01:07 出处:网络
I\'m trying to write a simple applescript script to get the contents of WriteRoom (a simple text editor) and run it through a markdown parser then copy the resulting html to the clipboard:

I'm trying to write a simple applescript script to get the contents of WriteRoom (a simple text editor) and run it through a markdown parser then copy the resulting html to the clipboard:

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")

but when I run it I get an error sometimes:

 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.

The selected text doesn't seem to be copied to the 开发者_C百科clipboard, instead whatever I had on my clipboard is converted. Any ideas?


It seems that text from your application is copied as a RTF stream. To convert it to a simple text please try using as text:

(the clipboard as text)

Update

After reading your question again, I I've downloaded WriteRoom and came up with this solution:

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

Then you can use the content variable for further processing. Use the Mac program Accessibility Inspector to find out the UI definition of any window as I did.


It's an old question and I see you got the fix. But seeing that I get the same "An error of type -25130 has occurred. Number -25130" with an Applescript (not using WriteRoom, using Sigil) I find out another fix in these cases.

Often it's really very important to add a small delay using GUI scripting. And actually even with some pre-selected text and just having a single keystroke I got that error. Not so if delay 0.1 before and after keystroke (or you have to play with different delay 0.2 and so on).

delay 0.1
tell application "System Events" to keystroke "c" using command down
delay 0.1
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号