[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Prüfen ob ein Buch offen ist

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

Prüfen ob ein Buch offen ist

Wortsalat
Beiträge gesamt: 87

8. Aug 2012, 09:47
Beitrag # 1 von 7
Bewertung:
(2683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
der Umstieg von CS3 auf CS6 ist vollendet und jetzt habe ich folgendes Problem:

Unter CS3 habe ich so geprüft, ob ein Buch offen ist:

Public Function IsBookOpen()
IsBookOpen_Loc = False
Set myInDesign = CreateObject("InDesign.Application")
Set mybook = myInDesign.books
anz_buch = mybook.Count
if anz_buch >= 1 then
IsBookOpen_Loc = true
end if
IsBookOpen = IsBookOpen_Loc
End Function


Unter CS6 ist anz_buch immer 0. Auch wenn ein Buch offen ist.

Weiß jemand weiter?
X

Prüfen ob ein Buch offen ist

-hans-
Beiträge gesamt: 748

8. Aug 2012, 10:27
Beitrag # 2 von 7
Beitrag ID: #499090
Bewertung:
(2661 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wortsalat,

ich habe zwar weder CS6 noch VB-Kenntnisse, aber auch unter CS6 lässt sich book mit isValid prüfen.

Also:
Code
app.books.itemByName('MeinBuch.indb').isValid 

returns 'false' wenn nicht offen und 'true' wenn offen.

In Deinem Schnipsel prüfst Du ürbrigens nur darauf ob irgendein Buch offen ist ...


als Antwort auf: [#499080]

Prüfen ob ein Buch offen ist

Wortsalat
Beiträge gesamt: 87

8. Aug 2012, 10:30
Beitrag # 3 von 7
Beitrag ID: #499091
Bewertung:
(2659 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für die Info.
Werde ich mal testen.

Richtig, ich teste ob irgend ein Buch offen ist. Muss auch so sein, da der Name des Buches nicht immer gleich (bekannt) ist.


als Antwort auf: [#499090]

Prüfen ob ein Buch offen ist

-hans-
Beiträge gesamt: 748

8. Aug 2012, 10:35
Beitrag # 4 von 7
Beitrag ID: #499093
Bewertung:
(2651 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also mindestens 1 Buch:
app.books[0].isValid

Schönen Tag


als Antwort auf: [#499091]

Prüfen ob ein Buch offen ist

Wortsalat
Beiträge gesamt: 87

8. Aug 2012, 11:40
Beitrag # 5 von 7
Beitrag ID: #499100
Bewertung:
(2608 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Problem gefunden.
(Aber noch nicht so ganz verstanden)

Also Script läuft so, wie ich es hatte auch unter CS6.

Ich hatte das Script unter

C:\Dokumente und Einstellungen\xxx\Anwendungsdaten\Adobe\InDesign\Version 8.0\de_DE\Scripts

in dem Ordner "Scripts Panel" abgelegt. Dann wird aber komischerweise beim Ausführen des Scripts unter CS6 die noch installierte CS3 Version gestartet und das Script dort ausgeführt. Da ich da ja kein Buch offen hatte, klappte es auch nicht.

Jetzt habe ich das Script bei CS6 hier abgelegt:

C:\Programme\Adobe\Adobe InDesign CS6\Scripts\Scripts Panel

und es geht.
Trotzdem danke für die anderen Tips.


als Antwort auf: [#499093]

Prüfen ob ein Buch offen ist

Martin Fischer
  
Beiträge gesamt: 12783

8. Aug 2012, 17:52
Beitrag # 6 von 7
Beitrag ID: #499122
Bewertung:
(2539 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ -hans- ] Also mindestens 1 Buch:
app.books[0].isValid


Äquivalent auch

Code
if (app.books.count() > 0) 

oder

Code
if (app.books.length > 0) 



als Antwort auf: [#499093]

Prüfen ob ein Buch offen ist

wiseloc
Beiträge gesamt: 41

9. Aug 2012, 10:07
Beitrag # 7 von 7
Beitrag ID: #499159
Bewertung:
(2492 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wortsalat,

Antwort auf [ Wortsalat ] Dann wird aber komischerweise beim Ausführen des Scripts unter CS6 die noch installierte CS3 Version gestartet und das Script dort ausgeführt.


Das liegt daran, dass du das Objekt ohne Versionsnummer aufrufst. Anscheinend ist in der Registrierung (HKCR\InDesign.Application\CLSID) noch die CS3 für das Objekt "InDesign.Application" registriert. Wenn du stattdessen "InDesign.Application.CS6" verwendest, sollte es problemlos klappen.


als Antwort auf: [#499100]
X