AppleScript:获取对象或类的所有属性的列表

2023-11-27

为了存储对象的值以供外部(外部 AS)访问,我需要能够获取该对象的每个属性,然后我尝试将其强制为文本并将其存储在某个地方。

如何获取对象拥有的属性列表。作为一个例子,我可以这样写:

tell me
  get properties
end tell

这适用于script object.

但对于许多其他对象,我只是收到一个错误,例如“描述符类型不匹配”,如下所示:

tell application "iTunes"
  get properties of file track 1
end tell

现在我知道了优秀的脚本调试器可以做到(它可以显示任何对象的整个属性集),因此在书面AppleScript中也应该是可能的。这其中有何秘诀呢?


《Script Debugger》的作者 Mark Alldrit 非常友善地向我解释了这个“秘密”。

脚本调试器使用一些特殊的 AppleScript API 函数(包括 OSAGetPropertyNames())来获取此信息。

因此,如果我用 C 语言编写一个包装器,我也可能能做到这一点。

Update

Cocoa Scripting API 有一个专门的类(NSScriptSuiteRegistry and NSScriptClassDescription) - 框架通过读取应用程序的脚本定义 (.sdef) 文件来构建此信息。这样,所有可用的类及其属性都可以很容易地学习。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AppleScript:获取对象或类的所有属性的列表 的相关文章

  • Swift NSScriptCommand 执行默认实现

    我在 Objective C 中使用了这段代码 implementation KDOrderInfo id performDefaultImplementation NSString theRequest self directParame
  • 如何使用 AppleScript 或 Lua 在 Calculator.app 上的结果后执行 ALT + TAB

    I use the Calculator app and after hitting the ENTER key I would like it to automatically do an ALT TAB to go to the pre
  • AppleScript -> 激活不可编写脚本的应用程序的窗口

    我打开了2个 Finder 窗口A和B A在前面 B在下面 以下代码片段将B带到最前面 tell application Finder activate activate window 2 end tell 但对于不支持脚本的应用程序 刚才
  • AppleScript 在 Finder 中设置目录路径

    我正在尝试通过 AppleScript 删除计算机上的文件 当我应用下面的代码时 似乎从桌面上删除了该文件 我想删除 Users andrew Documents 中的文件 下面是从桌面删除文件的代码 tell application Fi
  • 使用 AppleScript 在文本文件中查找和替换

    我正在尝试编写一个将通过启动代理运行的苹果脚本 该脚本需要做的是编辑用户首选项 plist 文件 以便默认保存位置特定于该用户 我知道这可以通过将 documents 设置为模板 plist 中的位置来完成 但例如 Premier Pro
  • 使用 applescript 我想将文件夹中的每个文件移动到根文件夹

    我一直在尝试制作一个脚本将文件夹中的每个文件移动到根文件夹以包含每个子文件夹 我不想创建新文件夹 只需将其移动到根文件夹即可 我希望能够选择文件夹 然后仅在该特定文件夹上完成操作 原因是为了组织 我的确切情况是我有超过 TB 的电影 并且文
  • AppleScript 处理程序中的可选参数

    The Applescript 文档 https developer apple com library mac documentation AppleScript Conceptual AppleScriptLangGuide conce
  • 如何在 Mac 中创建批处理文件?

    我需要在工作中找到一种解决方案来每天备份特定文件夹 希望备份到 RAR 或 ZIP 文件 如果是在电脑上的话我早就做了 但我不知道如何在 Mac 上实现它 我基本上想要实现的是可以使用可执行文件运行的自动化任务 它可以 压缩特定目录 Vol
  • 如何在 macOS 沙盒环境中从 C++ 运行 AppleScript 而不会侵犯权利

    我正在尝试使用AppleScript来控制ApplePhotos来自 QT C 应用程序中的应用程序 该应用程序必须在 macOS App Store 所需的沙箱环境中运行 我尝试通过 QProcess 启动来运行 AppleScripto
  • Applescript 和 iCal 交互

    我正在尝试编写一个 AppleScript 来查询 iCal 并查找任何日历中给定日期的所有事件 我首先编写一个简单的脚本 对给定日历中的每个事件执行一些简单的操作 tell application iCal tell calendar R
  • XCode 5 - AppleScript - 如何获取当前选项卡中的文档

    我想在外部应用程序 例如 MacVim 的当前选项卡中打开文档 基于一个堆栈溢出答案 https stackoverflow com a 12306831 398861我使用以下 AppleScript 代码创建了一个 Automator
  • AppleScript:从应用程序隐藏/获取进程名称

    我想隐藏最前面的应用程序 我知道您可以使用以下语法隐藏进程 tell application System Events set visible of process to false end tell 我知道如何获取最前面的应用程序 pa
  • 使用邮件规则和 Applescript 将 vcard 添加到联系人

    我通过特定的电子邮件地址收到了很多客户电子名片 我想通过邮件规则和 AppleScript 自动将电子名片添加到我的联系人中 我搜索了很多并找到了一些东西 我稍微修改了一下 并且打开和添加过程运行良好 但只有当我选择一个文件时 我无法将文件
  • Applescript 将启动 Chrome(具体内容)

    我真的很难创建一些在 osx 上启动浏览器窗口 chrome 的方法 具体细节包括窗口大小 没有选项卡等 传统上 我通过带有 IE 的窗口使用 vb 脚本 这是一个非常简单的练习 但我 我将是第一个承认的人 当谈到 Mac 时 我感到非常挣
  • 使用 AppleScript 和 Automator 在带有键盘的 Mac 上显示上下文菜单

    我正在尝试找到一种方法 在使用 Yosemite 的 Mac 上的 Finder 中调出上下文菜单without触摸鼠标 触摸板 A context menu 经过对此问题的广泛研究 唯一可能的途径似乎是使用 AppleScript 和 A
  • Applescript 退出终端

    背景 我是一名 Mac 用户 用 PostScript 维护一个程序 Postscript 由 Adob e Distiller 解释 蒸馏 因此有时我想要第二次或第三次 Adob e Distiller 会话 要打开这样的实例 我有一个名
  • 使用 AppleScript 运行另一个应用程序而不将其显示在扩展坞上

    使用 AppleScript 您可以创建运行另一个应用程序的脚本 然后将该脚本本身另存为应用程序并将其放置在 Dock 中 问题 不是真正的问题 是 当您单击它时 它仍然会在扩展坞上显示其他应用程序 是否可以阻止其他应用程序在扩展坞中显示
  • Applescript 和“开头为”运算符

    有没有办法检查 在applescript中 是否有列表 或html文本块 starts with任意数量的值 示例 检查单个值 if foobar starts with p then do something awesome here e
  • Applescript 应用程序从文件中读取

    我有一个已编译的 AppleScript 应用程序 已将其移至 Windows 服务器 然后我想将一个文本文件插入到应用程序中 在 Windows 上看起来像一个 zip 文件 myapplescript app Contents Reso
  • 如何使用 applescript 打开电子邮件?

    我正在编写一个小苹果脚本 它检索查看器中所有 未读 消息并循环它们 我有两个目标要完成 我需要获取每封邮件的主题并执行正则表达式以查看它是否适合步骤 2 例如 获取主题为 的电子邮件 我需要在单独的窗口中打开每条消息 4 秒后 我需要关闭该

随机推荐

  • 聚合根是否应该在领域驱动设计中实现接口

    我正在开发一个使用领域驱动设计和测试驱动开发的项目 在阅读 Evans 的 DDD 书籍时 我注意到他没有为域中的聚合根定义接口 如果我同时进行 DDD 和 TDD 我是否应该为每个聚合根定义接口以使聚合根类易于测试和模拟 如果是这样 我是
  • 调用 getDrawingCache() 时视图太大,无法放入绘图缓存

    我正在尝试截取 LinearLayout 内容的屏幕截图 该布局包含一个可以具有可变高度 宽度的滚动视图 当布局不太大时 此代码可以正常工作 即您不需要在屏幕上滚动太多来查看所有内容 View v1 LinearLayout theLayo
  • FireMonkey 应用程序中是否有可使用的 Web 浏览器组件?

    对于 Delphi VCL 有TWebBrowser和一些第三方组件 例如TEmbeddedWebBrowser可用于浏览网页 有没有类似的网络浏览器组件 但对于火猴框架在德尔福XE2 最好有 Windows 和 Mac 支持 您可以使用C
  • Angular2订阅理解箭头功能

    我尝试通过以下示例来理解打字稿的箭头函数角2可观察的订阅方法 有人能给我解释一下吗 我有这个有效的代码 this readdataservice getPost subscribe posts gt this posts posts 但如果
  • C#中如何实现多行字符串; VB 的 XML Literals 的替代品?

    我在 vb net 中有一个项目使用XML Literals像这样处理大块 SQL Dim SQL As String a Use test alter table BarFoo alter column CouponName nvarch
  • 如何绑定perl脚本中的每个变量?

    我想看到 perl 脚本中的变量被创建 访问 销毁时的每个地方 使用它可以轻松到达tie or Variable Magic 但是如何在创建变量时自动应用这个魔法呢 您可以查看 B Xref 它会生成应用程序中所有变量的交叉引用列表 基本上
  • 导航视图项目按下时不会响应

    我正在开发一个带有侧导航抽屉的应用程序 抽屉打开得很好 但是据说可以 点击 的文本似乎没有响应 动画显示 当轻敲抽屉时会有反馈 您可以听到声音 但没有任何结果 我尝试放置 toast 消息以查看按钮是否注册了操作 但按下时没有出现 toas
  • JPanel 动作监听器

    我有一个 JPanel 其中有一堆不同的复选框和文本字段 我有一个已禁用的按钮 需要在设置特定配置时启用 我需要的是在整个 JPanel 上寻找事件的监听器 每当发生任何变化时 我相信我需要一个动作侦听器 但我找不到任何东西来桥接动作侦听器
  • “导入错误:没有名为 pwd 的模块”,但它存在

    我正在尝试在本地测试 gae boilerplate 但是当我尝试创建新帐户时 会出现以下错误 奇怪的是 如果我打开 python 解释器并输入 import pwd 它就会起作用 Internal Server Error The ser
  • Objective C 中的悬空指针 - nil 也会释放内存吗?

    我的理解是 当内存未被释放或 释放 时 就会发生内存泄漏 当指针未设置为 nil 并且对象被释放时 就会出现悬空指针 我的问题是 可以将对象设置为 nil 释放内存并清除指针引用吗 i e Car myCar Car alloc initW
  • 需要重构箭头反模式的想法

    我继承了一个怪物 它伪装成 NET 1 1 应用程序处理符合医疗保健索赔支付 ANSI 835 标准的文本文件 但它是一个怪物 正在处理的信息涉及医疗保健索赔 EOB 和报销 这些文件由在前几个位置具有标识符的记录和根据该类型记录的规范格式
  • Go结构体和字节数组之间的转换

    我正在用 Go 编写一个客户端 服务器应用程序 我想在 Go 中执行类似 C 的类型转换 例如 在围棋中 type packet struct opcode uint16 data 1024 byte var pkt1 packet n r
  • 如何在视图内切换视图?

    我正在使用 MVVM 轻型框架制作一个 WPF 应用程序 我想做的是在视图中有一个登录表单 当用户按下该视图中的按钮时 它会为附加的 ViewModel 启动 LoginCommand 从那里我要么想要启动一个包含应用程序其余部分的新窗口
  • 没有可用的 mysql-server 软件包

    我正在尝试在 Amazon Linux 实例上设置 MySQL 我已经尝试了所有方法 也使用 y 选项 sudo yum install mysql server sudo yum install mysql56 server sudo y
  • 从类中删除必需的属性,但 MVC3 仍然不会在文本框中没有值的情况下发布表单

    我有课 在某一时刻 我使用 System ComponentModel 将类的属性设置为 Required 好吧 然后我意识到这是没有必要的 我已经删除了所需的属性 但是当我尝试将表单提交到 ActionResult 时 表单不会发布 并且
  • C# - 通过进程名称的一部分来终止进程

    我正在寻找如何在 C 中执行此操作 如下所示 foreach Process proc in Process GetProcessesByName cheatengine x86 64 proc Kill 我正在使用这个语句 但是该程序有不
  • 销毁并重新创建一个对象是否会使指向该对象的所有指针无效?

    这是后续这个问题 假设我有这样的代码 class Class public virtual method this gt Class new this Class Class object new Class object gt metho
  • 检测 Android JNI 代码中的本机内存泄漏

    如何检测Android JNI代码中的内存泄漏 我正在使用弗罗约 2017年更新 valgrind 可用对于安卓 内置的 malloc 调试功能在以下版本中得到了显着扩展 安卓N 对于查找内存泄漏非常有用 您可能需要 exit 应用程序触发
  • iPhone 的动态图标更改

    我的问题也和其他人之前问过的一样 我发现一旦你设置了应用程序的图标 我们就无法更改应用程序图标动态地 是的 我同意了 如果是这样 我们使用动态图标苹果不接受 但我承认苹果有一些规则和规定 所以这是我的问题 如何动态更改应用程序图标 我不会将
  • AppleScript:获取对象或类的所有属性的列表

    为了存储对象的值以供外部 外部 AS 访问 我需要能够获取该对象的每个属性 然后我尝试将其强制为文本并将其存储在某个地方 如何获取对象拥有的属性列表 作为一个例子 我可以这样写 tell me get properties end tell