Dokumente beim Öffnen hantieren

Dies ist letztlich nicht viel mehr als ein Script-Fragment. Was mich im Wesentlichen gereizt hat, war die Frage, ob ein Script das Eine tun kann, wenn beim Starten die Alt-Taste gedrückt wird und etwas Anderes, wenn nicht.Eine Lösung habe ich nicht für JavaScript gefunden, aber für AppleScript. VisualBasic kann vermutlich Ähnliches, aber das mag ein anderer austüfteln. Mein Script läuft also nur unter MacOS XDas Script tut aber auch tatsächlich etwas mehr oder weniger Sinnvolles: Es ist in InDesign so, dass Dokumente aus älteren Programm-Versionen als noch-nie-gespeicherte-Dokumente betrachtet werden, also als solche ohne vorgegebenen Speicherort.So mancher Anwender hätte aber gern, dass auch diese beim Speichern gleich den ursprünglichen Speicherort vorfinden, egal, wo auf der Festplatte dieser sein mag.

Dies ist letztlich nicht viel mehr als ein Script-Fragment. Was mich im Wesentlichen gereizt hat, war die Frage, ob ein Script das Eine tun kann, wenn beim Starten die Alt-Taste gedrückt wird und etwas Anderes, wenn nicht.

Eine Lösung habe ich nicht für JavaScript gefunden, aber für AppleScript. VisualBasic kann vermutlich Ähnliches, aber das mag ein anderer austüfteln. Mein Script läuft also nur unter MacOS X

Das Script tut aber auch tatsächlich etwas mehr oder weniger Sinnvolles: Es ist in InDesign so, dass Dokumente aus älteren Programm-Versionen als noch-nie-gespeicherte-Dokumente betrachtet werden, also als solche ohne vorgegebenen Speicherort.
So mancher Anwender hätte aber gern, dass auch diese beim Speichern gleich den ursprünglichen Speicherort vorfinden, egal, wo auf der Festplatte dieser sein mag.

Installation und Idee

Auch AppleScript hat keinen eigenen Befehl, die aktuell gedrückte Taste rauszufinden. Aber AppleScript kann Terminal-Befehle abschicken und auswerten. Auf dieser Seite bin ich fündig geworden. Es gibt ein kleines Unix-Programm, das nichts anderes tut, als den Keycode der aktuell gedrückten Taste zurückzuliefern. Den kann man dann per AppleScript abfragen.

Bevor Sie das Script "open_doc_with_handling" starten, müssen Sie also Allan Craigs Tool runterladen und an den Ort "/Library/UnixApps/getModKey" legen. Oder den Pfad im Script (ganz am Ende) anpassen.

Danach starten Sie das AppleScript entweder ganz normal einmal über die Scriptpalette (es passiert scheinbar nichts. Das Script klinkt sich nur in die Menübefehle ein) oder Sie legen es in den "Startup Scripts" Ordner und starten InDesign neu.

Das Script klinkt sich in zwei Menübefehle ein: "Öffnen" und "Speichern". Nicht in "Speichern unter...". Und der (für mich eigentliche) Clou: Wenn Sie beim Aufrufen dieser Menübefehle die Alt/Options Taste drücken, hält es sich zurück und es wird ganz normal geöffnet/gespeichert.

Benutzung

Die Benutzung sollte fast vollständig transparent sein. Sie öffnen Dateien, Sie speichern Dateien. Der Unterschied ist, dass Dateien mit einem "(umgewandelt)" im Reiter automatisch im Ordner landen, in dem die alte Datei lag.

Um das zu erreichen, speichert das Script beim Öffnen den ausgewählten Pfad in einem sogenannten Script-Label. Das Speichern-Script liest das Label aus.

Wenns und Abers

Mein Ziel war, das Script so unauffällig wie möglich zu machen.

Wenn Sie ein Dokument per Doppelklick oder Drag und Drop aus dem Finder öffnen, wird das Script nicht gestartet -> das Dokument bekommt kein Script Label.

Wenn Sie ein Dokument per "Speichern unter" speichern, wird das Script nicht gestartet -> das Script-Label wird nicht ausgelesen.

Wenn das Dokument schon gespeichert wurde, tut das Script nichts. Apfel S funktioniert in diesem Fall also wie gehabt.

Wenn das Dokument kein Script-Label hat, z.B. weil es per Doppelklick geöffnet wurde, tut das Script nichts. Apfel S funktioniert in diesem Fall wie gehabt.

Falls Sie die Idee zwar ganz gut finden, aber das soll nur passieren, wenn Sie Alt drücken und nicht wenn sie Alt nicht drücken, löschen Sie einfach zwei Zeilen aus dem Script. Und zwar die Zeilen, in denen nur "else" steht, direkt nach den Zeilen "if is_option_down = 2048 then".