Zum Inhalt springen

Dialoge im Javascript in Photoshop unterdrücken

Tipp: Dialoge in Adobe Photoshop CC in einem Javascript unterdrücken

(Info:) (Update:) Die Befehle von Javascript in Adobe Photoshop CC sind im Vergleich zu Illustrator CC zum Teil recht unterschiedlich. Es ist ja nicht so, dass im Referenz-Handbuch zu JavaScript für das passende Adobe-Produkt, diese Informationen nicht enthalten wären. Doch sucht man, wenn man das eine Programmverhalten im Kopf hat, oft an der falschen Stelle im anderen Referenz-Handbuch. Der kurze Tipp »Dialoge im Javascript in Photoshop unterdrücken« zeigt dies deutlich. 

(Hilfe:) Sie wollen oder können nicht selbst programmieren? Sie brauchen kurzfristig ein Javascript für eine Automatisierung für ein aktuelles Problem in Illustrator oder einem anderen Adobe Programm? Dann helfe ich Ihnen gerne als JavaScript-Entwickler mit meiner jahrzehntelang Programiererfahrung.
Schreiben Sie mir einfach und unverbindlich per Kontaktformular.

Ein Beispiel für Illustrator und Photoshop

Hier im Beispiel geht es um das automatische Öffnen von Dateien, die per Javascript verarbeitet und wieder gespeichert werden sollen. 

(AI:) Öffnet man mit den JavaScript-Befehl app.open() eine Datei in Illustrator, dann geht diese einfach auf und das Javascript geht ohne Rückfragen an den Benutzer zum nächsten Befehl über.

(PS:) Anders in Photoshop: Hier folgt auf den JavaScript-Befehl app.open() die Frage an den Benutzer, in welches (Farb-)Profil die Datei umgewandelt werden soll. 

Ein störender Dialog, der während des Lauf eines Javascripts in Photoshop, unterdrückt, also nicht erscheinen soll.
Ein störender Dialog, der während des Lauf eines Javascripts in Photoshop, unterdrückt, also nicht erscheinen soll.

Das ist sehr lästig, wenn man per Javascript viele Dateien nacheinander öffnen und bearbeiten will. Also ist der Wunsch sinnvoll, dass dieser Dialog versteckt, sprich unterdrückt, wird.

(Frage:) Wo nach soll man suchen, wenn man den Dialog im Photoshop umgehen will? Unter dem Stichwort »suppress« (unterdrücken) liest man im Referenz-Handbuch zu Javascript in Photoshop nur einen Eintrag, die sich auf die Batch-Verarbeitung (Stapelverarbeitung von Aktionen) bezieht. Das hilft jedoch nicht weiter. Also um was geht es? Richtig: Es geht um Dialoge.

(Antwort:) Javascript in Photoshop hat jedoch einen Befehl, der alle Dialoge unterdrückt:

app.displayDialogs = DialogModes.NO; // Schaltet alle Dialoge ab.

app.open(); // Öffne Datei.

app.displayDialogs = DialogModes.ALL; // Schaltet alle Dialoge wieder ein.

Der Modus »DialogModes.NO« schaltet auch alle Fehlermeldungen ab, sodass es dann beim Programmieren schwierig wird den Problemen auf die Schliche zu kommen. Daher ist die folgende Befehlszeile die bessere Wahl:

app.displayDialogs = DialogModes.ERROR; // Schalte Dialog ab, zeigt jedoch Fehler an.

Es gibt jedoch einen Befehl, der den Modus »DialogModes.NO« ignoriert, und dass ist das Schliessen eines Photoshop-Dokuments wie »vDocRef.close()«. Jedoch gibt es einen Schließbefehl ohne Dialog:

vDocRef.close(SaveOptions.DONOTSAVECHANGES);

ENDE


(Hilfe:) Wenn Sie eine Funktion zum Automatisieren in (AI:), (PS:), (IC:), (ID:) oder (FM:) benötigen, jedoch nicht selbst programmieren, dann sprechen Sie mich an. Ich übernehme gerne kleine Aufträge: zum Kontaktformular.