问题标签 [sourceforge-appscript]

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 投票
2 回答
475 浏览

applescript - 使用 rb-appscript 在页面或文本编辑中编写项目符号/编号列表

我需要使用 rb-appscript 创建一个包含项目符号和编号列表的新 Pages 文档。对此,我看到段落有一个名为 list_style 的属性,但我对 rb-appscript 或 applescript 不够熟悉,无法弄清楚如何设置该属性。我已经阅读了由 ASDictionary 生成的文档,但我对 AppleScript 的了解显然太少,无法理解。

对于理解如何使用文档中提供的信息或在页面中使用 rb-appscript 编写列表的任何帮助将不胜感激。

编辑:我没有卡在页面上,textedit 也是一个可行的选择。

0 投票
1 回答
629 浏览

osx-lion - 如何在 OSX Lion 中使用 rb-appscript 在 Finder 中获取当前选定文件的路径

在 OSX 10.6 中,我使用以下代码对 Finder 中当前选择的每个文件执行一些操作:

(这是由键盘大师推出的)。这工作得很好,但是在 OSX Lion 中,行为似乎已经改变。

selection.get 仍然返回正确的参考 app('Finder').selection.get[0] => app"/System/Library/CoreServices/Finder.app"disks["Home"]folders["stian"]folders[ "下载"]document_files["综合考试(1).doc"]

但是,当我尝试使用 URL.get 提取它时,我得到一个奇怪的数字: app('Finder').selection.get[0].URL.get => "file:///.file/id=6637683.2924283"

如何获取上述参考并将 POSIX 路径作为文本字符串 (/Home/stian/Downloads/Comprehensive Exam (1).doc)?

我可以获得整个参考的文本版本,如下所示: app('Finder').selection.get[0].get.to_s => "app("/System/Library/CoreServices/Finder.app").disks["Home"].folders["stian"].folders["Downloads"].document_files["Comprehensive Examination (1).doc"]"

所以我想我可以手动解析它并构建 POSIX 路径,但这似乎非常麻烦和脆弱。

谢谢你的帮助!

0 投票
2 回答
1680 浏览

python - 将 AppleScript 翻译成 Python appscript (`do javascript`)

这是 AppleScript 模板:

我想把它翻译成 Python appscript。不幸的是,我无法弄清楚如何翻译do javascript. 有任何想法吗?

我什至不知道如何找到它。也许我对 AppleScript 的了解太少了。是do关键字吗?还是我发送给应用程序的命令?是javascript一个参数do吗?还是do javascript属于一起(作为带有空格的命令)?

0 投票
1 回答
477 浏览

python - Python appscript 错误:OSERROR:-1700,无法将某些数据转换为预期类型

给出:

我不完全使用什么kfil手段。有人可以解释吗?

我试图做以下事情:

这给了我:

0 投票
0 回答
85 浏览

python - Python appscript 不存在文件的文件类型使用。错误-1700

我尝试从这里遵循一些 Python appscript 示例。

以下代码

为什么?

0 投票
2 回答
709 浏览

python - Python appscript OSAX display_dialog:如何将其移至前台

我正在玩这里的示例;尤其是 我有这个代码:

对话框始终在后台打开。如何在前台打开(或移动到)前台?

0 投票
0 回答
499 浏览

objective-c - OSAX 的 AppleEvent 处理程序导致其他 AppleEvent 失败

编码

如果 Photoshop 尚未运行,则可以使用。在这种情况下,它会启动 Photoshop 并找到do_javascript方法。

但是,如果 Photoshop 已在运行,则该代码将失败并出现异常

为什么?

(注意:这是 Python appscript 代码,但我有同样的错误,带有更神秘的消息,纯 AppleScript。错误是44:54: syntax error: Expected end of line but found identifier. (-2741)。)

SIMBL会导致问题。如果我停止 SIMBL 代理,它就可以工作。

SIMBL 代理中的此代码会导致问题:

app适用SBApplication于 Photoshop。)

因为我需要 SIMBL Agent 才能工作,所以不使用它对我来说并不是一个真正的解决方案。所以我需要知道为什么这会造成麻烦。

SIMBL.osax定义代码的处理程序SIMeload

这是InjectEventHandlerSIMBL.osax

请注意,我也有代码被注释掉的问题(如发布的那样)。这意味着 SIMBL 事件处理程序实际上什么都不做。它仍然会产生问题。

因此,要么 OSAX 包/处理程序有问题,要么 AppleEvent 的发送方式有问题。

0 投票
1 回答
290 浏览

ruby - 处理唤起 MacOS 安全窗口的 shell 命令的 Ruby 方式

我有一个简单的问题,我想看看这里的人是否可以帮助我。目前,我正在编写一些测试自动化来处理一个简单的内部命令行工具,该工具可以转储智能卡的内容。在转储此智能卡信息的过程中,它会调用一个 PIN 输入窗口,用户需要在该窗口中输入其 PIN 码信息以进行智能卡解锁。我遇到的问题有两个。

  1. 你如何在 ruby​​ 中处理这样的弹出窗口?这是通过 rb_appscript 完成的吗?或类似的东西?如果这是可能的(我无法弄清楚),如何获取该窗口的 id、名称等,然后捕获文本输入事件?似乎很难。

  2. 只有当您有“多个”PIN 窗口要处理时,这种情况才会真正发生。对于 CAC 卡,有一个解锁 PIN 事件,可以在脚本的早期通过一个名为“security”的简单钥匙串 cli 轻松处理:

这个事件:

security unlock-keychain -p "12345678" "CAC-4070-4443-223E-5555-2187"

如果在转储卡之前调用将解锁钥匙串并转储卡而不提示 PIN 提示。

但是,如果该卡是 PIV 卡,则令牌中似乎存在一个错误,该错误会在卡内显示另外 4 个 PIN 提示以获取证书。所以上面的命令只对一个解锁事件有效。我尝试连续发送 4 个解锁事件,但似乎无法处理。我遇到的 PIN 输入窗口如下所示:

在此处输入图像描述

我很好奇如何在 Ruby 中处理这个动作,这可以通过我不知道的另一个 ruby​​ gem 的 rb_appscript 来完成吗?你能穿这个吗?

这是我的代码,请原谅硬编码,但我现在只是在嘲笑:

我正在查看 gem 'session' 和其他一些交互式 shell gem,但它们似乎无法处理这个问题。如果我能找到一种方法来处理我的 ruby​​ 代码中的那个窗口,那至少可以让我破解所有的 PIN 提示?或者有一个循环来查找这些窗口弹出窗口,在该弹出窗口中输入卡的 PIN,我至少会处理这个问题。

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


我想我明白你在说什么.. 但由于这是一个并行过程,即事件需要被捕获,我不确定这个:

将起作用,因为一个 ruby​​ 进程正在运行。我想我可以把它放在一个循环中并以这种方式寻找窗口?但是,不太确定

0 投票
1 回答
310 浏览

python - py-appscript 需要参数

我想制作一个 Python 脚本来控制 VLC。VLC 可以通过 AppleScript 进行控制,通过使用py-appscript我可以从 Python 运行 AppleScript 代码。

使用 AppleScript 我可以播放/暂停 VLC

这等于以下py-appscript

我还应该能够通过以下方式跳到下一首曲目:

但是这样做时,我收到以下 Python 错误:

有谁知道我为什么会收到这个错误?上面的代码应该等于 AppleScript 中的以下代码,它可以完美运行:

0 投票
2 回答
325 浏览

python - Rdio Desktop API 是否为曲目提供唯一 ID?

我为自己构建了一个小型桌面应用程序,它记录来自 iTunes 和 Rdio 的收听,因此我可以根据我随着时间的推移听音乐的方式创建强大的播放列表,但它要求每首曲目都有一个永远不会改变的唯一 ID,无论我以前听哪个应用程序。我目前使用 Python 中的 appscript 从 iTunes 中检索唯一 ID:

但是,在浏览 Rdio Suite AppleScript Dictionary 时,我没有看到任何类型的唯一 ID 附加到轨道。建议?