首页 > 解决方案 > 使用 AppleScript 自动化如何获取当前打开的 Adob​​e 阅读器文件名

问题描述

我试过下面的代码

activate application "Adobe Reader"

tell application "System Events"
    tell process "Adobe Reader"
        set currentFile to active Document


    end tell
end tell

但是我无法获得活动文档名称,我已经通过打开的文档尝试了此代码。我什至没有在脚本编辑器中找到任何用于 adobe reader 的字典。任何建议将不胜感激

标签: applescriptadobe

解决方案


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 docNamewas 用于测试目的,可以酌情删除。此外, Adobe Reader没有必要获得焦点,它的窗口甚至可以最小化,脚本仍然检索其窗口菜单上显示的名称

  • 注意:这是使用美国英语Adob​​e Acrobat Reader DC (连续发布 | 版本 2019.021.20058.)在macOS High Sierra上测试的,并且按原样工作。可能需要针对其他语言和/或不同版本的Adob​​e Reader进行调整。

注意:示例 AppleScript 代码就是这样,并且不包含任何可能适当的额外错误处理。用户有责任根据需要或需要添加任何错误处理。查看AppleScript 语言指南中的try 语句错误 语句。另请参阅处理错误。此外,在适当的情况下,在事件之间可能需要使用延迟命令,例如,适当设置延迟的 delay 0.5


推荐阅读