Was läuft gerade und überhaupt?

Das Ansprechen von Prozessen, also auch von Programmen, gehört zu den grundlegenden Tätigkeiten in AppleScript. Das ‚tell application …‘ kennt jeder, der sich schon einmal in AppleScript versucht hat. So einfach es im ersten Moment aussieht, so schwierig kann es im Einzelfall werden: Ein Benutzer hat ein Programm umbenannt, nach einem Update hat sich der Name geändert, weil der Softwarehersteller meint, dass Versionsnummern unbedingt in den Namen gehören oder das Programm existiert schlichtweg nicht auf dem Rechner. Wie also vorgehen?

Der erste Schritt könnte sein, sich die Prozessliste ausgeben zu lassen:

Mit ein paar Zeilen mehr Code kann man schon nach Prozessen suchen und muss in dieser Variante noch nicht mal den vollständigen Namen wissen.

Man könnte jetzt den Namen des Prozesses abfangen und ihn dann in Tell-Anweisungen verwenden. Mit dieser Variante kann man die klassischen Namensprobleme bei Programmen umgehen, die Versionierungen im Namen tragen wie die Programme von Adobe: ‚Adobe Photoshop CS3‘, ‚Adobe Photoshop CS4‘, …

Mit dieser kurzen Zeile kann man übrigens direkt ermitteln, ob ein Programm läuft, man muss allerdings den exakten Namen wissen:

Das hilft aber alles noch nicht weiter, wenn der User aus ‚QuarkXpress Passport‘ schlicht ‚QXP‘ gemacht hat. Da hilft folgender Trick: Jedes Programm besitzt eine ID, die den BundleIdentifier oder die BundleSignatur der Software repräsentiert. Aufgerufen wird die ID mit:

Das Ergebnis sieht folgendermaßen aus:

com.quark.QuarkXPress

Um nun Scripte portabel zu machen, benutzen Sie diese ID, um das gewünschte Programm anzusprechen:

Es ist damit egal, wie das Programm letztendlich heißt, mit dem ID-Aufruf können Sie es immer ansprechen. Infos über das Programm erhalten sie so:

AppleScript, Automatisierung, Download