[GastForen Programme Print/Bildbearbeitung Adobe Illustrator externes JavaScript in Script-UI-Palette ausführen

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

externes JavaScript in Script-UI-Palette ausführen

da-tex
Beiträge gesamt: 67

12. Sep 2012, 10:51
Beitrag # 1 von 23
Bewertung:
(8682 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Community,
ich habe vor, ein Script-Fenster (palette) zu machen, aus der man verschiedene Javascripts aufrufen kann. Dies soll dann automatisch bei Programmstart gestartet werden (liegt demzufolge im Startup-Scripts-Ordner).
Hintergrund ist der, in Illustrator die Scripte aufzurufen (über die Palette via Buttons, welche immer sichtbar ist), ohne jedesmal in das Menü zu klicken. Leider ist es in Illustrator nicht möglich den Scripts eine Tastenkombination zuzuweisen.

Folgendes ist dabei herausgekommen:

Code
var w = new Window ("palette", "Script Palette", undefined); 
var _sba = w.add("button", [0,0,150,25], "ScriptTitel");

_sba.onClick = function(){
file = File('C:/test.jsx');
if(!file.exists) alert('File is not found:\r'+file.fsName);
else $.evalFile(file);
}

w.show()


jedoch scheint die Zeile mit "$.evalFile(file)" nicht zu funktionierten, aber nur, wenn ich das Fenster als "palette" definiere. Wenn es ein "dialog ist" funktioniert alles einwandfrei.

Hat eventuell jemand eine Idee, wie man es als "palette" zum laufen bekommt?

Danke fürs Mitüberlegen :)
Philipp
X

externes JavaScript in Script-UI-Palette ausführen

Martin Fischer
Beiträge gesamt: 12783

12. Sep 2012, 11:12
Beitrag # 2 von 23
Beitrag ID: #500743
Bewertung:
(8671 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Philipp,

hast Du's mal mit doScript() versucht?

Siehe auch Script aus der Kommando Zeile ausführen (MAC / WIN)


als Antwort auf: [#500739]

externes JavaScript in Script-UI-Palette ausführen

fabiantheblind
Beiträge gesamt:

12. Sep 2012, 11:23
Beitrag # 3 von 23
Beitrag ID: #500745
Bewertung: ||
(8661 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Philipp,

wirf doch mal einen Blick auf Script Bay http://in-tools.com/...tire-creative-suite/ oder den Script launcher von Peter Kahrel http://www.kahrel.plus.com/indesign/runscript.html

:fab


als Antwort auf: [#500739]

externes JavaScript in Script-UI-Palette ausführen

da-tex
Beiträge gesamt: 67

12. Sep 2012, 14:08
Beitrag # 4 von 23
Beitrag ID: #500755
Bewertung:
(8604 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin & Fabian,
vielen Dank für eure Vorschläge.
"app.doScript()" akzeptiert er in Illustrator leider nicht -> "doScript() ist keine Funktion". Das Script von Peter Kahrel greift leider auch darauf zurück. ScriptBay hängt sich leider beim aufrufen der Erweiterung auf. Ich werde ScriptBay bei mir zu Hause nocheinmal probieren.

Philipp


als Antwort auf: [#500745]

externes JavaScript in Script-UI-Palette ausführen

-hans-
Beiträge gesamt: 748

12. Sep 2012, 14:45
Beitrag # 5 von 23
Beitrag ID: #500758
Bewertung:
(8582 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

was genau passiert denn ... oder nicht? Bei mir funktioniert Dein Script.


als Antwort auf: [#500755]

externes JavaScript in Script-UI-Palette ausführen

fabiantheblind
Beiträge gesamt:

12. Sep 2012, 15:04
Beitrag # 6 von 23
Beitrag ID: #500761
Bewertung:
(8568 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Phillipp,

noch ein kleiner Nachtrag meinerseits
das hier ist ein Auszug aus einem After Effects Skript (Launch Pad.jsx von Jeff Almosal)

Code
var scriptFile = new File(this.scriptFile); 
if (scriptFile.exists){
scriptFile.open("r");
var scriptContent = scriptFile.read();
scriptFile.close();
eval(scriptContent);
//$.evalFile(scriptFile);
}


Das findest du hier
http://www.adobe.com/...il&extid=1698043

Der Code ähnelt sehr deinem Code. Vielleicht probierst du es mal mit dem "Öffnen/Einlesen/Schliessen" des Skriptes.

Jeff A. hat noch ein weiteres Skript das genau das selbe macht. Zu finden hier http://www.redefinery.com/...em=rd_ScriptLauncher

:F


als Antwort auf: [#500739]

externes JavaScript in Script-UI-Palette ausführen

da-tex
Beiträge gesamt: 67

12. Sep 2012, 17:32
Beitrag # 7 von 23
Beitrag ID: #500768
Bewertung:
(8525 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
Als ich diesen Thread verfasst habe, war ich auf Arbeit. Nun habe ich es zu Hause mit dem oben geposteten Code ausprobiert und es funktioniert, wie bei Hans-Gerd Claßen.
Bei mir auf Arbeit öffnet sich die Palette, jedoch tut sich beim Knopfdruck auf den Button nichts.
Nun werd ich wohl den Fehler bei mir auf Arbeit suchen/finden müssen.

Vielen Dank für eure Unterstützung
Philipp


als Antwort auf: [#500758]

externes JavaScript in Script-UI-Palette ausführen

pixxxelschubser
Beiträge gesamt: 1708

12. Sep 2012, 22:49
Beitrag # 8 von 23
Beitrag ID: #500780
Bewertung:
(8479 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo da-tex,
wo befindet sich dein startup script Ordner? Unter welchem Betriebssystem mit welcher Illustrator-Version testest du das Skript?

Das von dir gepostete Skript funktioniert unter der Kombination Windows Vista + Illu CS3 und auch unter Windows 7 + Illu CS 5.1

Allerdings gibt es bei beiden Konfigurationen das folgende Verhalten: Die Palette ordnet sich immer im Hintergrund an. Das heißt, wenn sie teilweise sichtbar ist und angeklickt wird, dann kommt sie in den Vordergrund. Wird irgendwo im Bereich von Illu oder im geöffneten Dokument geklickt, dann verschwindet die Palette hinter dem Programmfenster.


als Antwort auf: [#500768]

externes JavaScript in Script-UI-Palette ausführen

da-tex
Beiträge gesamt: 67

13. Sep 2012, 09:05
Beitrag # 9 von 23
Beitrag ID: #500788
Bewertung:
(8436 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pixxxelschubser,
ich habe es gerade nochmal unter Win Server 2008 und Illu CS5 ausprobiert und da funktioniert es nun.
Über das Verhalten der Palette habe ich mir noch keine Gedanken gemacht, da ich erstmal probieren wollte, ob es mit dem Einbinden externer scripts auch funktioniert.

Philipp


als Antwort auf: [#500780]

externes JavaScript in Script-UI-Palette ausführen

-hans-
Beiträge gesamt: 748

13. Sep 2012, 12:33
Beitrag # 10 von 23
Beitrag ID: #500813
Bewertung:
(8405 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Mittag;

Zitat Allerdings gibt es bei beiden Konfigurationen das folgende Verhalten: Die Palette ordnet sich immer im Hintergrund an. Das heißt, wenn sie teilweise sichtbar ist und angeklickt wird, dann kommt sie in den Vordergrund. Wird irgendwo im Bereich von Illu oder im geöffneten Dokument geklickt, dann verschwindet die Palette hinter dem Programmfenster.


Sobald es mit dem target Illustrator ausgeführt wird ist es auch auf dessen Programmebene ...


als Antwort auf: [#500780]

externes JavaScript in Script-UI-Palette ausführen

pixxxelschubser
Beiträge gesamt: 1708

13. Sep 2012, 19:20
Beitrag # 11 von 23
Beitrag ID: #500835
Bewertung:
(8377 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo -hans-,
nicht auf den beiden von mir getesteten Systemen. Weder mit target Illustrator noch ergänzend mit targetengine session. Sobald im Programm/Dokument geklickt wird, legt sich die Palette hinter das Programmfenster.
Unsure

Wo habt ihr eigentlich den startup script Ordner angelegt? Bei mir funktioniert es generell nur, wenn dieser Ordner direkt im Hauptverzeichnis liegt.


als Antwort auf: [#500813]

externes JavaScript in Script-UI-Palette ausführen

da-tex
Beiträge gesamt: 67

13. Sep 2012, 20:29
Beitrag # 12 von 23
Beitrag ID: #500846
Bewertung:
(8361 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
bei mir verhält es sich auch wie bei pixxelschubser...
und ich hab den startup ordner auch im Hauptverzeichnis -> "C:\Program Files (x86)\Adobe\Adobe Illustrator CS5\Startup Scripts"

Nochmal zu Script Bay: das ist ja eine geniale Erweiterung, und bei mir zu Hause funktioniert es. Ich werd morgen mal zu unserem Admin gehen und nachfragen wie es mit den Benutzerrechten aussieht. Die Erweiterung legt nämlich unter Dokumente im User-Verzeichnis einen Ordner namens "Script Bay" an. Meine Vermutung ist, dass dies bei mir auf Arbeit wegen mangelnder Benutzerrechte nicht funktioniert und sich Illustrator somit aufhängt.

Viele Grüße
Philipp


als Antwort auf: [#500835]

externes JavaScript in Script-UI-Palette ausführen

da-tex
Beiträge gesamt: 67

18. Sep 2012, 22:24
Beitrag # 13 von 23
Beitrag ID: #501069
Bewertung:
(8219 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi, ich bin es nochmal :),
Wenn ich es wie folgt mache, wird das einzubindende Script gefunden und ich bekomme die Meldung "there is no document"

Code
// Hauptdatei 
#target Illustrator

var w = new Window ("palette", "Script Palette", undefined);
var _sba = w.add("button", [0,0,150,25], "ScriptTitel");

_sba.onClick = function(){
scriptFile = File('C:/test.jsx');
if (scriptFile.exists){
alert('Datei existiert schonmal')
try{$.evalFile(scriptFile);}
catch(e){alert(e.message)}
}
}

w.show()


hier nun das Script welches eingebunden wird:
Code
// external script 
#target Illustrator

alert('Der Alert wird angezeigt')
var doc = app.documents[0];
if(doc.documentColorSpace == DocumentColorSpace.RGB) {
alert("Der Arbeitsfarbraum der Datei '" + app.activeDocument.name +"' ist RGB.", "Warnung");
}


Hat dies etwas mit dem "$" und der "palette" zu tun? oder verliert das Script den Bezug zu Illustrator und dessen Dokumenten?
Der alert im eingebundenen Script wird ja noch wiedergegeben... warum wir Nachfolgendes nicht ausgeführt? Ist es möglich, dass eventuell Skriptvoreinstellungen getätigt werden müssen?
Als "window" funktioniert es auch nicht. Mit "dialog" schon... jedoch kann man dann im Hintergrund nicht weiterarbeiten.

Hat eventuell noch jemand eine Idee wie man das einzubindende Script zum laufen bekommt? Das Verhalten der Palette sei erstmal dahingestellt.

Danke fürs Mitdenken ;)
Philipp


als Antwort auf: [#500758]

externes JavaScript in Script-UI-Palette ausführen

pixxxelschubser
Beiträge gesamt: 1708

18. Sep 2012, 23:51
Beitrag # 14 von 23
Beitrag ID: #501073
Bewertung:
(8182 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zuerst eine Frage: Warum wurde der Thread eigentlich nach Aktuell/Neu verschoben?

Jetzt zum Thema:
Du hast dein Skript in den Startup-Ordner gelegt. Der Alert wird an dieser Stelle immer funktionieren. Doch dann legst du eine Variable mit dem „vordersten“ Dokument fest. Aber direkt nach dem Start ist i.d.R. noch kein Dokument geöffnet.

Öffne also entweder vor der Variablenzuweisung ein vohandenes Dokument oder weise die Variable einem zu öffnenden Dokument zu oder weise die Variable einem neu zu erstellendem Dokument zu, z.B.:
Code
var docPreset = new DocumentPreset; 
docPreset.width = 595.0;
docPreset.height = 842.0;
var aDoc = documents.addDocument(DocumentColorSpace.CMYK, docPreset);



als Antwort auf: [#501069]

externes JavaScript in Script-UI-Palette ausführen

da-tex
Beiträge gesamt: 67

19. Sep 2012, 07:44
Beitrag # 15 von 23
Beitrag ID: #501079
Bewertung:
(8120 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
Antwort auf: Du hast dein Skript in den Startup-Ordner gelegt

Nein, zum Testen habe ich es in den normalen Script-Ordner gelegt, damit ich Illustrator nicht ständig neustarten muss. Ich habe zwei Varianten ausprobiert, 1. Ausführen des Scriptes aus dem ESTK und 2. aus dem Skriptmenü von Illustrator.
Vor Ausführung des Scriptes habe ich auch stehts mindestens ein Dokument geöffnet, damit ich prüfen kann ob im Dok auch etwas passiert (bspw. schwarz überdrucken per script).

Wenn ich nun ein Dokument geöffnet habe und das Script wie oben beschrieben ausführe funktioniert es wenn das Fenster vom Typ "dialog" ist, wenn es vom Typ "palette" oder "window" ist, dann nicht.

Wird das Script nicht erst eingebunden/gestartet, nachdem auf den Button geklickt wurde? somit sollte es doch nicht relevant sein, ob beim ausführen der palette schon ein dok geöffnet ist oder nicht. Hauptsache es ist geöffnet wenn auf den Button geklickt wird. oder?

Philipp


als Antwort auf: [#501073]
X