Ausführen eines Appleskriptes.

Ausführen eines Appleskriptes. Dem Aufruf wird dabei der komplette Skripttext, nicht der Pfad auf eine Skriptdatei, mitgegeben.

Alles was nicht ausdrücklich ausgeschlossen wird, wird von irgend jemandem probiert. Deshalb hier ausdrücklich : Der Befehl kann nur unter Mac OS X erfolgreich ausgeführt werden!. Unter Windows ist der Aufruf implementiert, liefert aber das Ergebnis -1199.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

-1753 : Syntaxfehler im Skript
-1199 : Nicht implementiert (nur Windows)
script String oder char* - Vollständiger Skriptcode - natürlich in AppleScript
resultString String oder char* 0 Allokierter String für das Ergebnis des Skriptes, das dort mit return zurückgegeben wird.

Das folgende Skript erwartet im aktuellen Textrahmen einen vollständigen Dateipfad. Von dieser Datei wird eine Kopie erzeugt und der vollständige Pfad der Kopie zurückgegeben.

int create_duplicate (char * script)
{
    *script = 0;
strcat (script, "set p to \"$MyPath\"\n"); strcat (script, "set a to POSIX file p\n"); strcat (script, "\n"); strcat (script, "tell application \"Finder\"\n"); strcat (script, " set r to duplicate a\n"); strcat (script, "end tell"); strcat (script, "\n"); strcat (script, "set res to POSIX path of (r as string)\n"); strcat (script, "return res"); return 0; }
int main () { String txt = string::alloc (); char script [4000]; char resString[4000]; int res;
textmodel::gettext (txt); create_duplicate (script); strreplace (script, "$MyPath", file::uncurtain (string::get (txt)));
res = run_applescript (script, resString); wlog (   "",   "Duplicate returned %d with message '%s'\n",   res, resString);
return 0; }

Und hier der umgekehrte Weg - AppleScript führt cScript aus :

(*
 	Das Skript öffnet die Produktrecherche. 
 	Dann wird ein Datenbank-Login gemacht und die 
 	Produktrecherche wird geladen.
*)
tell application "Adobe InDesign CS5"
 	set visible of panel "Produktrecherche" to 1
  set CT to comet 1 -- Die 1 ist wichtig!!   tell CT   set sc to ""   set sc to sc & "int main () {"   set sc to sc & "datapool::login (1, \"mysql\", \"root\", \"\", \"tablemodule\", \"\", 0, 0);"   set sc to sc & "list::reload (3, 1);"   set sc to sc & "return 0;}"
  eval cscript sc argument "" options ""
  end tell end tell

Seit
Version 2.0, R 626, 18. März 2008

Verfügbarkeit
Mac priint:comet InDesign® Plug-Ins Comet-Plugins

Alphabetic index HTML hierarchy of classes or Java