38.2. aetools-OSAClient 端支持

aetools模块包含构建 Python AppleScriptClient 端支持的基本Function。它还导入并重新导出aetypesaepack模块的核心Function。 gensuitemodule生成的存根软件包将导入aetools的相关部分,因此通常您不需要自己导入它。唯一的 exception 是当您无法使用生成的套件包并且需要较低级别的脚本访问权限时。

aetools模块本身使用Carbon.AE模块提供的 AppleEvent 支持。这有一个缺点:您需要访问窗口 Management 器,有关详细信息,请参见使用 GUI 运行脚本部分。在将来的版本中可能会取消此限制。

Note

该模块已在 Python 3.x 中删除。

aetools模块定义以下Function:

  • aetools. packevent(* ae parameters attributes *)

    • 将参数和属性存储在预先创建的Carbon.AE.AEDesc对象中。 parametersattributes是将 4 个字符的 OSA 参数键 Map 到 Python 对象的字典。使用aepack.pack()打包对象。
  • aetools. unpackevent(* ae * [,* formodulename *])

    • 以递归方式将Carbon.AE.AEDesc事件解压缩到 Python 对象。该函数返回参数字典和属性字典。生成的存根包使用formodulename参数来控制在哪里查找 AppleScript 类。
  • aetools. keysubst(* arguments keydict *)

    • 根据keydict中指定的 Map,pass用四个字符的 OSA 密钥替换 Python 标识符的密钥,从而将 Python 关键字参数字典arguments转换为packevent所需的格式。由生成的套件软件包使用。
  • aetools. enumsubst(* arguments key edict *)

    • 如果arguments词典包含key的条目,则根据词典edict转换该条目的值。这会将人类可读的 Python 枚举名称转换为 OSA 4 个字符的代码。由生成的套件软件包使用。

aetools模块定义以下类:

    • class * aetools. TalkTo([* signature = None start = 0 timeout = 0 *])
    • 用于与应用程序对话的代理的 Base Class。 signature覆盖类属性_signature(通常由子类设置),并且是 4 个字符的创建者代码,用于定义要与之交谈的应用程序。可以将start设置为 true 以启用在类实例化上运行应用程序。可以指定timeout来更改 awaitAppleEvent 答复时使用的默认超时。
  • TalkTo. _start ( )

    • 测试应用程序是否正在运行,如果没有运行,请try启动它。
  • TalkTo. send(* code subcode * [,* parameters attributes *])

    • 为带有 OSA 名称code, subcode的动词创建 AppleEvent Carbon.AE.AEDesc(通常是 4 个字符的字符串),将parametersattributes打包到其中,将其发送到目标应用程序,await 答复,用unpackevent解压缩答复并返回回复 appleevent,解压后的返回值(作为字典)和返回属性。