问题标签 [scripting-bridge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
255 浏览

cocoa - 使用 Scripting Bridge 和 NSPredicate 的一些标准挂钩 CPU

我正在尝试通过 Scripting Bridge 从 iTunes 中获取曲目列表。我正在使用NSPredicate,因为这是推荐的方式。这在某些情况下效果很好,而在其他情况下却非常缓慢。例如,这将很快执行:

libraryPlaylist是在别处创建的 iTunesLibraryPlaylist 对象。)

但如果我添加其中一个kindvideoKind混合,iTunes 会在一分钟或更长时间内达到 100% CPU。

但这最终会奏效。真正的失败是albumArtist。如果我尝试

iTunes 将达到 100% CPU 并坐在那里不知道多久。(我在 3 或 4 分钟后放弃了。)我是否遗漏了什么或者这是 iTunes 中的错误?

附加信息

我的代码采用生成的曲目并调用另一种方法将它们添加到播放列表(也使用脚本桥)。我注意到,当尝试按种类过滤时,曲目会慢慢地一一出现在列表中,而 iTunes 会敲击 CPU。这只能意味着它filteredArrayUsingPredicate已经返回了它的结果,那么iTunes如此努力的工作是什么?

0 投票
2 回答
1454 浏览

python - 使用 ScriptingBridge 和 Python,我可以从当前播放的曲目中获得哪些属性?

我以这个例子为基础,很想检索有关当前曲目的更多信息。例如,轨道的当前时间是多少(“播放头”在哪里)以及总轨道长度是多少。

0 投票
0 回答
219 浏览

macruby - 是否可以减少使用 ScriptingBridge 的 MacRuby 脚本的启动时间?

我想使用 MacRuby 和 ScriptingBridge 而不是 AppleScript 来控制支持 AppleScript 的 Mac 应用程序。我曾经使用 appscript 来做到这一点,它实际上已被弃用,因此移动了 MacRuby 和脚本桥。

我唯一的问题是 ScriptingBridge 框架需要大约一秒钟的时间来加载,即使在具有快速 SSD 的快速机器上也是如此。例如,这个简单的脚本运行大约需要 0.9 秒,几乎所有时间都用于加载 ScriptingBridge 框架:

等效的 osascript 运行大约需要 70 毫秒,而 py-appscript 用于给出相似的时间:

是否有任何直接的方法可以将 MacRuby/ScriptingBridge 脚本捆绑/编译/收缩成启动更快的东西?

我尝试使用 macrubyc 将脚本捆绑到一个独立的可执行文件中,但生成的可执行文件在正常运行时运行速度并不比脚本快得多,仍然需要大约一秒钟的时间才能运行。

(我的预感是否定的,因为像 macrubyc 这样的编译步骤无法轻易看出脚本将访问框架的哪些部分,因此很难优化。)

0 投票
0 回答
75 浏览

python - 带有 ScriptingBridge 的 wxPython 在退出时导致 Seg Fault

这是一个非常奇怪的情况,我似乎无法弄清楚。我正在 OSX Lion(wxpython 版本 2、9、3、1)上使用 wxPython 编写应用程序。

每当我从 ScriptingBridge 导入并执行一些简单的操作(例如创建一个框架然后关闭它)时,它不会完全关闭并在关闭时出现段错误。试试这个代码:

运行此代码后,只需将其关闭即可。它应该段错误。现在,只需注释掉 ScriptingBridge 导入并再次运行并关闭它。没有 Seg 故障。

更奇怪的是,如果您只是创建一个导入 ScriptingBridge 的脚本,但不导入 wxPython,那么一旦脚本退出,它就不会出现段错误……看来这是两者的结合。

有没有人看到这个并且他们找到了解决方法?如果可能的话,我希望我的应用程序干净地退出。

0 投票
1 回答
199 浏览

objective-c - 无法从草稿发送附件 (Mail.app)

我正在尝试发送使用 Mail.app 创建的草稿。

由于草稿没有发送方法,我必须从草稿中获取所有内容,并用它创建一个新的电子邮件。那应该没问题,但是...附件没有通过。

我正在使用这个:

传出是我正在创建的消息,而消息是我正在阅读的草稿。

我尝试循环浏览邮件的附件并手动添加它们,但我总是得到这个:

这就是我循环它们的方式:

值得注意的是,无论如何,文件路径 NSLog 始终显示为 (null)。

将不胜感激这里的任何帮助。

0 投票
1 回答
187 浏览

macruby - MacRuby ScriptingBridge 加载速度

有没有更快的方法从 MacRuby 加载脚本桥应用程序?

当我为 Adob​​e InDesign 制作 SBApplication 对象时,加载时间超过 10 秒。这是我一直在使用的代码:

当然,生成的头文件对于 InDesign 来说是巨大的……有没有办法强制使用支持文件?

0 投票
1 回答
208 浏览

ruby - 将 MacTypes::FileURL 从 appscript-ruby 重写为 MacRuby ScriptingBridge

我有一个脚本,可以自动将给定的 PDF 附加到BibDesk中的出版物。使用 appscript-rb,以下代码片段完美运行:

尝试为 MacRuby 重写它,我想出了以下内容:

但是,这会使 MacRuby 崩溃(我假设也是因为它是错误的)。我只是得到:

如何将 appscript-ruby 重写为正确的 MacRuby ScriptingBridge 格式?

0 投票
2 回答
1075 浏览

objective-c - 使用 Applescript 在桌面上获取选定/单击的项目

我需要获取桌面上当前选定的项目或右键单击的桌面项目。根据此项目的路径,我将不得不执行一些操作。这可以使用applescript来完成吗???

我目前正在使用这里给出的逻辑(使用脚本桥)

但这似乎从任何查找器窗口中获取选择,而不仅仅是桌面视图。任何人都可以请提供任何替代方案吗?

0 投票
1 回答
815 浏览

objective-c - 通过 ScriptingBridge 在 iTunes 中播放特定标题

我正在尝试编写一个通过 ScriptingBridge 与 iTunes 交互的应用程序。到目前为止我工作得很好,但这种方法的选择似乎非常有限。

我想播放给定名称的歌曲,但看起来没有办法做到这一点。我在 iTunes.h 中没有找到类似的东西……</p>

在 AppleScript 中只有三行代码:

然后 iTunes 开始播放经典的披头士歌曲。有没有我可以用 ScriptingBridge 做到这一点,还是我必须从我的应用程序运行这个 AppleScript?

0 投票
2 回答
233 浏览

macos - 如何在 MacRuby 中将 NSPopUpButton 与 iTunesPlaylist 对象绑定?

我正在尝试使用一组 iTunesPlaylist 对象填充 NSPopUpButton。我将 NSArrayController 绑定到 NSPopUpButton

所有播放列表都将出现在 NSPopUpButton 中,但它们的名称都带有

我想要做的是将 ITunesPlaylist.name 绑定到 NSPopUpButton 的内容值,但我似乎无法让它工作。

似乎也很少有关于 Scripting Bridge API 调用返回的对象的类定义的文档(例如 ITunesPlaylist、ITunesTrack)。

有人可以给我一些指示吗?最终,我想制作一个下拉菜单,以分层形式显示用户的 iTunes 播放列表。