Если вы не хотите/не можете установить какое-либо дополнительное программное обеспечение, есть встроенный способ поиска идентификаторов процессов и приложений: ps.
ps - полезный инструмент командной строки для поиска информации о запущенных процессах. Для того, чтобы найти конкретное приложение с учетом количества процесса (который я присвоенное переменной myProcessId):
do shell script "ps -p " & myProcessId
это будет возвращать результат, как этот
PID TTY TIME CMD
66766 ?? 9:17.66 /Applications/Firefox.app/Contents/MacOS/firefox-bin -psn_0_3793822
ограничить результат только соответствующий line, проложить его до такой степени как grep
do shell script "ps -p " & myProcessId & "|grep " & myProcessId
Разбором ответа вы можете узнать имя приложения. Это может быть немного сложно, потому что результат покажет фактическую команду, используемую для приложения, а не имя приложения (если вы посмотрите на пример, который вы увидите, его можно найти, если вы ищете что-то .app в результате) ,
Редактировать - извините, я неправильно понял вопрос.
Вы можете сделать это с системными событиями (оказывается гораздо проще, чем faffing вокруг с оболочкой так или иначе):
tell application "System Events"
set theprocs to every process whose unix id is myProcessId
repeat with proc in theprocs
set the frontmost of proc to true
end repeat
end tell
Я знаю это, но это не интересно для меня. Как я уже объяснил в своем вопросе, я уже знаю название приложения, но их несколько. Единственный способ, которым я могу различать их, - это идентификатор процесса, который я знаю. –
О, я вижу. См. Править выше. – stib
+1 для фильтра ', чей unix id is ...', но нет необходимости в _loop_; просто нацелитесь на «первый процесс, чей unix id ...». – mklement0