【问题标题】:Applescript not accepting arRsync sdef commands?Applescript 不接受 arRsync sdef 命令?
【发布时间】:2010-12-01 03:58:00
【问题描述】:

我正在使用名为“arRsync”的 rsync 开源 GUI 前端。它工作得很好,但没有办法自动化它。

我要做的是使用 Applescript 使用以下简单脚本运行预设(您在应用程序中定义):

tell application "arRsync" to runPreset "presetTest1"

问题是 Applescript 认为“runPreset”是一个变量,而不是一个命令。我还尝试了上述的告诉/结束告诉变体,没有骰子。 “runPreset”命令是 arRsync.sdef 的一部分

你可以找到arRsync项目here

我尝试在应用程序中打开两个 Info.plist 文件并勾选“可编写脚本”框(或者对于那些没有属性列表编辑器的人将其设置为“真”),但我仍然卡住了。

在 Cocoa 方面我是一个脚本菜鸟:p 非常感谢您的帮助

【问题讨论】:

    标签: cocoa applescript rsync sdef


    【解决方案1】:

    arRsync 二进制文件缺少脚本字典。从源代码构建,首先进行以​​下更改:

    1. 在项目中编辑 Info.plist,将“Scriptable”选项设置为 true。
    2. 修复项目的脚本字典 arRsync.sdef。 runPreset 命令的代码有一个字母太少(command 代码必须是两个 FourCC,或八个字符长)。给runPreset的code属性添加一个字符;几乎任何角色都可以工作。如果需要,可以通过用包含替换标准和文本套件来缩短和简化文件。备份原始文件并创建一个新的 arRsync.sdef,其中包含:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
      <dictionary title="arRsync Terminology"
                  xmlns:xi="http://www.w3.org/2003/XInclude">
        <xi:include href="file:///System/Library/ScriptingDefinitions/CocoaStandard.sdef" 
                    xpointer="xpointer(/dictionary/suite)"/>
        <suite name="arRsync Suite" code="arRs">
            <command name="runPreset" code="runPPrst">
                <cocoa name="runPreset" class="scriptController"/>
                <direct-parameter type="any"/>
            </command>
        </suite>
      </dictionary>
      

      或者,您可以将runPreset 命令元素替换为上面的元素。

    3. Add arRsync.sdef 到 arRsync 目标的“复制捆绑资源”phase
    4. Switch 到版本 build(“Blackbeard”是调试版本的名称)。
    5. 构建它。

    这应该会生成一个可编写脚本的 arRsync 版本。正如您已经知道的那样,您可能还需要使用目标 SDK。

    【讨论】:

    • 好的,刚刚试过,它保存为“Blackbeard.app”而不是“arRsync.app”,但内容看起来完全一样。我尝试编译和不编辑 info.plist 文件以启用脚本,同样的问题仍然存在。感谢您的帮助!
    • 我去看看源码。
    • 非常感谢!哦,仅供参考,它不能在 10.6 上编译,必须使用 10.5。
    • 你指的是未定义的_sleep$UNIX2003符号错误吗?我自己必须以 10.4 为目标并切换到 GCC 4.0。
    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 2020-09-28
    • 2023-03-31
    • 2016-04-19
    相关资源
    最近更新 更多