С помощью автоматизации AppleScript, как я могу получить в настоящее время открытое имя файла Adobe Reader - PullRequest
0 голосов
/ 27 апреля 2020

Я попробовал ниже код

activate application "Adobe Reader"

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


    end tell
end tell

Но я не мог получить имя активного документа, я пробовал этот код уже с открытым документом. Я даже не нахожу словарь для Adobe Reader в редакторе сценариев. Любые предложения будут высоко оценены

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Приложение Adobe Reader не содержит AppleScript файл словаря в своем комплекте приложения и поэтому не является AppleScript с возможностью сценариев сверх очень ограниченного числа Standard Suite команд и сценариев пользовательского интерфейса его строка меню с Системными событиями .

Если вы просто хотите получить имя документа , который имеет фокус, то следующий пример 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 было в целях тестирования и может быть при необходимости удалено. Кроме того, для Adobe Reader не было необходимости иметь фокус, а его окно можно было даже свернуть, сценарий по-прежнему извлекал имя как показано в его окне меню .

  • Примечание: Это было проверено на macOS High Sierra с использованием US Engli sh и Adobe Acrobat Reader D C (непрерывный выпуск | Версия 2019.021.20058.) И работает как есть. Для других языков и / или других версий Adobe Reader .

могут потребоваться настройки. Примечание: пример AppleScript код только и не содержит никакой дополнительной обработки ошибок , которая может быть уместной. Пользователь должен добавить любую обработку ошибок , которая может быть уместной, необходимой или желаемой. Взгляните на оператор try и error оператор в Руководство по языку AppleScript . См. Также Работа с ошибками . Кроме того, использование delay команда может быть необходимо между событиями, где это необходимо, например, delay 0.5, со значением задержка установлена ​​соответствующим образом.

0 голосов
/ 27 апреля 2020

Вот несколько вариантов AppleScript, которые могут работать для вас. У меня нет Adobe Reader, поэтому я не могу проверить код.

tell application "Adobe Reader" to set currentFile to name of document 1

Если это не работает для вас, вы можете попробовать это ...

tell application "Adobe Reader" to activate

repeat until application ""Adobe Reader" is frontmost
    delay 0.1
end repeat

tell application (path to frontmost application as text) to set currentFile to name of document 1
...