[GastForen Programme Print/Bildbearbeitung Adobe InDesign Scripte bei zwei unterschiedlichen InDesign Versionen nutzen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Scripte bei zwei unterschiedlichen InDesign Versionen nutzen

Wortsalat
Beiträge gesamt: 87

26. Sep 2022, 08:39
Beitrag # 1 von 4
Bewertung:
(1820 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich bereite gerade die Umstellung von InDesign 14.0.3 auf InDesign 17 vor.
Wir arbeiten täglich mit der Buchfunktion. Da man Dokumente einer älteren Verson nicht ohne vorheriges Speichern in eine Buchdatei der neuen Version laden kann, muss ich jetzt wieder (wie bei jeder Versionsumstellung) eine sehr große Menge an Dateien in die neue Version speichern.
In dieser Zeit habe ich noch beide Version parallel auf dem Rechner.
Jetzt ist mir aufgefallen, wenn ich ein Script in der 14.0.3 ausführen will, dann startet die 17 und das Script wird dort ausgeführt.
Weiß jemand, wie ich im Script festlegen kann, in welcher Version dieses ausgeführt werden soll?
Bis CS3 konnte/musste man das im Script eintragen:
Set myInDesign = CreateObject("InDesign.Application.cs3")

Danke für Tipps.
Grüße
Marcel
X

Scripte bei zwei unterschiedlichen InDesign Versionen nutzen

Martin Fischer
  
Beiträge gesamt: 12783

26. Sep 2022, 10:27
Beitrag # 2 von 4
Beitrag ID: #584472
Bewertung:
(1788 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marcel,

Antwort auf: Jetzt ist mir aufgefallen, wenn ich ein Script in der 14.0.3 ausführen will, dann startet die 17 und das Script wird dort ausgeführt.


Wie startest Du die Skripte?
Vermutlich nicht direkt über das ScriptPanel in InDesign, sondern über einen externen Debugger.

»Set myInDesign = CreateObject("InDesign.Application.cs3")« klingt nach VBA.

In JavaScript wurde(/wird?) das Ziel mit folgender Zeile am Anfang angewiesen:

Code
#target indesign-17.064  
// (064 steht für 64 Bit)


Das Targeting von CC InDesign-Versionen in VBA ist mir unbekannt.

Mit dem doScript()-Befehl gibt es in InDesign JavaScripten die Möglichkeit, AppleScripts und VBA-Scripte innerhalb eines JavaScripts auszuführen.



Gibt es gewichtige Gründe, die Skripte (jenseits der Entwicklung) nicht aus den ScriptPanels der jeweiligen InDesign-Version zu starten?


als Antwort auf: [#584468]

Scripte bei zwei unterschiedlichen InDesign Versionen nutzen

Wortsalat
Beiträge gesamt: 87

26. Sep 2022, 12:04
Beitrag # 3 von 4
Beitrag ID: #584474
Bewertung:
(1752 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich starte das Script in InDesign 17 über das ScriptPanel.
Wennn ich es der Version 17 starte, dann wird es normal ausgeführt.
Starte ich eine Kopie des Scripts in der Version 14 (auch ScriptPanel) dann wird InDesign 17 geöffnet.
Ich habe schon überlegt, ob das irgendwie/-wo über die registry geregelt wird.

Ja, das Script ist in VBA geschrieben.
Der Hinweis mit #target und doScript() ist schon mal eine Richtung, in der ich gucken kann.
Danke


als Antwort auf: [#584472]

Scripte bei zwei unterschiedlichen InDesign Versionen nutzen

Wortsalat
Beiträge gesamt: 87

27. Sep 2022, 11:25
Beitrag # 4 von 4
Beitrag ID: #584491
Bewertung:
(1636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier die Lösung zu dem Problem (Quelle: ADOBE INDESIGN CS6 SCRIPTING GUIDE: VBSCRIPT):



Targeting

A script must always target the version of InDesign under which it is running (the current version), either
explicitly or implicitly. Targeting is implicit when the script is launched from the Scripts panel.
Otherwise, explicit targeting for Visual Basic applications and VBScripts is done using the CreateObject
method:

Rem Target InDesign CS6 Roman:
Set myApp = CreateObject("InDesign.Application.CS6")
Rem Target InDesign CS6 J:
Set myApp = CreateObject("InDesign.Application.CS6_J")
Rem Target the last version of InDesign that was launched:
Set myApp = CreateObject("InDesign.Application")



Bei neueren Versionen:

Rem Target InDesign CC Roman:
Set myApp = CreateObject("InDesign.Application.CC")
Rem Target InDesign CC J:
Set myApp = CreateObject("InDesign.Application.CC_J")
Rem Target the last version of InDesign that was launched:
Set myApp = CreateObject("InDesign.Application")



Bei InDesign 14 wäre das dann: CreateObject("InDesign.Application.CC.2019")


@Martin Danke für den Hinweis zum "Target".


als Antwort auf: [#584474]
X