Wenn Sie keine zusätzliche Software installieren möchten/können, gibt es eine integrierte Möglichkeit, nach Prozess-IDs und Apps zu suchen: ps.
ps ist ein nützliches Befehlszeilenprogramm, um Informationen zu laufenden Prozessen zu finden. Um eine bestimmte App zu finden die Prozessnummer gegeben (die ich auf eine Variable myProcessId zugewiesen haben):
do shell script "ps -p " & myProcessId
dies ein Ergebnis wie dieses
PID TTY TIME CMD
66766 ?? 9:17.66 /Applications/Firefox.app/Contents/MacOS/firefox-bin -psn_0_3793822
geben das Ergebnis zu beschränken, um nur die relevanten Linie, über eine Pipe Sie den Namen der App finden Durch Parsen der Antwort wie so
do shell script "ps -p " & myProcessId & "|grep " & myProcessId
grep. Dies kann ein wenig kompliziert sein, da das Ergebnis den eigentlichen Befehl anzeigt, der für die App verwendet wird, nicht den Namen der App (wenn Sie sich das Beispiel anschauen, können Sie es finden, indem Sie nach etwas.app im Ergebnis suchen) .
Edit - Entschuldigung, ich habe die Frage missverstanden.
Sie können es mit Systemereignissen tun (erweist sich als viel einfacher als mit der Schale faffing um sowieso):
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
Ich weiß das, aber es ist nicht interessant für mich. Wie ich bereits in meiner Frage erklärt habe, kenne ich den Namen der App bereits, aber es gibt mehrere davon. Die einzige Möglichkeit, zwischen ihnen zu unterscheiden, ist die Prozess-ID, die ich zufällig kenne. –
oh, ich verstehe. Siehe die obige Bearbeitung. – stib
+1 für den Filter 'when Unix-ID ist ...', aber es gibt keine Notwendigkeit für einen _loop_; ziele einfach auf den ersten Prozess, dessen Unix-ID ... ist. – mklement0