Вы пробовали проверять открытые файлы для процесса?
Есть несколько способов сделать это (см .: эта статья )
Обычно двоичный файл приложения будет открытым файлом процесса.
Имейте в виду, что двоичный исполняемый файл может содержаться в пакете, и вам нужно будет найти его, выполнив команду show package contents
в поисковике, а затем добавив путь к исполняемому файлу в пакете. В пакете чек под /Contents/MacOs/
.
Это может занять много времени, если у вас много открытых процессов и, следовательно, не очень практично запускать часто.
Также примите во внимание, что один исполняемый файл может быть запущен в более чем одном экземпляре процесса.
Жаль, что стандартный Activity Monitor не поддерживает сценарии appleScript, который я только что проверил, надеясь на более дружественное решение для appleScript. Вы все равно сможете достичь того же результата, вызвав командную строку оболочки.
Также часто имя процесса совпадает или совпадает с именем файла, но это зависит от приложения или процесса, который вы ищете.
Я предполагаю, что у вас должны быть установлены разные версии одного и того же приложения, которое нужно проверить для приложения по пути?
Или, если вам не нужно определять имя пути динамически, вы можете просто посмотреть его заранее, используя Activity Monitor или в командной строке. Там вы можете определить имя процесса, которое соответствует вашему запущенному приложению, запущенному по указанному пути. Зная заранее имя процесса, вы легко сможете использовать
tell application "System Events" to get application process "Name of My Application"
--insert the actions you want to perform on your running app here
end tell
Чтобы решить любые проблемы уникальности процесса, если одно и то же приложение работает более одного раза, вы всегда можете получить идентификатор процесса pid
или unix. Вот статья о том, как получить pid в appleScript скрипт работающего приложения