无法对unicode文本执行Applescript错误

无法对unicode文本执行Applescript错误,applescript,Applescript,我正在尝试编写一个简单的applescript脚本,以获取WriteeRoom(一个简单的文本编辑器)的内容,并通过标记解析器运行它,然后将生成的html复制到剪贴板: tell application "WriteRoom" to activate tell application "System Events" to keystroke "a" using command down tell application "System Events" to keystroke "c" using

我正在尝试编写一个简单的applescript脚本,以获取WriteeRoom(一个简单的文本编辑器)的内容,并通过标记解析器运行它,然后将生成的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")
但当我运行它时,有时会出现错误:


所选文本似乎不会复制到剪贴板,而是转换剪贴板上的所有内容。有什么想法吗?

应用程序中的文本似乎是作为RTF流复制的。若要将其转换为简单文本,请尝试使用
作为文本

(the clipboard as text)
更新

再次阅读您的问题后,我下载了WriteeRoom并提出了以下解决方案:

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

然后可以使用
内容
变量进行进一步处理。像我一样,使用Mac program Accessibility Inspector查找任何窗口的UI定义。

这是一个老问题,我看你得到了修复。 但是,看到我在Applescript(不使用writeeRoom,使用Sigil)中得到了相同的“发生了类型为-25130的错误。编号为-25130的错误”,我发现了这些情况下的另一个修复方法

通常,使用GUI脚本添加一个小的
延迟
是非常重要的。事实上,即使是一些预先选择的文本,只需敲击一次
键,我就得到了那个错误。如果击键前后
延迟0.1
(或者您必须使用不同的延迟0.2,依此类推),则情况并非如此


我尝试过使用
(剪贴板作为文本)
,但它仍然不能一直工作,有时我会出现错误:“错误”发生了类型为-25130的错误。“数字-25130”您能否尝试测试将剪贴板设置为静态文本,以查看它是否会工作?如果是这样,您必须找到另一种方法来转换RTF。请公布你的测试结果。例如:
告诉应用程序“Finder”将剪贴板设置为“某些剪贴板文本”
仅运行
将剪贴板设置为“asdf”
工作,但当我使用命令down将
告诉应用程序“系统事件”添加到按键“c”时,再次失败,我没有正确阅读您的问题。您的问题是所选文本没有从应用程序eRoom复制。我将尝试检查它。有时,您必须在复制和获取剪贴板之间添加一个短(<0.1s)延迟。
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
delay 0.1
tell application "System Events" to keystroke "c" using command down
delay 0.1