applescript - 使用 AppleScript 自动化如何获取当前打开的 Adobe 阅读器文件名
问题描述
我试过下面的代码
activate application "Adobe Reader"
tell application "System Events"
tell process "Adobe Reader"
set currentFile to active Document
end tell
end tell
但是我无法获得活动文档名称,我已经通过打开的文档尝试了此代码。我什至没有在脚本编辑器中找到任何用于 adobe reader 的字典。任何建议将不胜感激
解决方案
Adobe Reader应用程序的应用程序包中没有AppleScript 字典文件,因此除了非常有限的标准套件命令和UI 脚本使用System Events的菜单栏之外,它不是AppleScript可编写脚本的。
如果您只想获取具有焦点的文档的名称,那么以下示例AppleScript代码 可以做到这一点:
if running of application id "com.adobe.Reader" then
try
tell application "System Events" to ¬
set docName to ¬
(get name of every menu item of menu 1 of menu bar item ¬
"Window" of menu bar 1 of application process ¬
"Acrobat Reader" whose value of ¬
attribute "AXMenuItemMarkChar" = "✓") as string
return docName
end try
end if
使用return docName
was 用于测试目的,可以酌情删除。此外, Adobe Reader没有必要获得焦点,它的窗口甚至可以最小化,脚本仍然检索其窗口菜单上显示的名称。
- 注意:这是使用美国英语和Adobe Acrobat Reader DC (连续发布 | 版本 2019.021.20058.)在macOS High Sierra上测试的,并且按原样工作。可能需要针对其他语言和/或不同版本的Adobe Reader进行调整。
注意:示例 AppleScript 代码就是这样,并且不包含任何可能适当的额外错误处理。用户有责任根据需要或需要添加任何错误处理。查看AppleScript 语言指南中的try 语句和错误 语句。另请参阅处理错误。此外,在适当的情况下,在事件之间可能需要使用延迟命令,例如,适当设置延迟的值。 delay 0.5
推荐阅读
- algorithm - 如何摆脱康威人生游戏中的稳定模式?
- excel - 识别文本格式的单元格是否包含任何字母
- html - 用于获取最近 2 天 IIS 日志文件并检查文件大小差异或增长的 Powershell 脚本
- html - 尝试打开下载的文件时,将表格内容从 Angular 导出到 Excel 会调用错误
- javascript - 如何使用谷歌脚本检查两个谷歌工作表,并将重复项移动到新工作表?
- c - 如何解决 C 中指向不完整类型的解引用指针?
- javascript - 获取图像角度或节点的base64的最佳方法
- php - 元查询比较日期
- python - 从仅给出键值对子集的元组列表创建字典
- reactjs - RecyclerListView 使用功能组件滚动到顶部 onEndReached