Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jan •->


Anmeldedatum: 25.05.2004 Beiträge: 7
|
Verfasst am: 25.05.2004 - 10:05 Titel: Einen AppleScript aus AppleScript erstellen |
|
|
Hallo! Ich bin absolut neu in AppleScript, und habe bis jetzt aber schon dazugelernt, z.B. das AppleScript nicht einfach nur Text ist, der auf einem Apple ausgeführt werden kann. ich komme aus dem Webbereich und bin mit ASP, PHP und MySQL groß geworden. Alles reine Textsprachen, die dann auf dem Server verarbeitet werden.
Aber nun mal zum Poblem:
Ich habe eine FilemakerPro Datenbank laufen, in der mir eine Script dynamisch einen AppleScript erzeugen soll. Die ansteuerung aus Filemaker ist kein Problem, nur mit dem AppleScript haperts noch ein bisschen.
Im Apple-AppleScript Forum habe ich erfahren,das man irgendwas mit osacompile .. do shell script oder sowas machen muß damit aus meiner Text-Anweisung eine richtige Application wird.
Starten tut sie schon von selbst, und der File_creator sowie File_Type scheinen auch richtig zu sein, aber die Anweisung im Script muckt nicht.
Hier mal der Script:
tell application "Script Editor"
set creator_code to "APPL"
set creator_type to "aplt"
set the_string to "display dialog \"Hello\""
set target_file to ("Macintosh HD:Users:hd:Desktop:testscript.app")
open for access file target_file with write permission
write the_string to file target_file starting at eof
close access file target_file
tell application "Finder" to set file type of (target_file as alias) to creator_code
tell application "Finder" to set creator type of (target_file as alias) to creator_type
tell application "Script Editor" to do shell script "osacompile -d -o target_file -e " & quoted form of the_string
end tell
Hat da jmd ne Idee
Danke
JAN |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 25.05.2004 - 19:11 Titel: |
|
|
Hallo Jan,
es hat sich nicht vertragen, dass du den Skripttext zuerst mit 'write' und dann nochmal mit 'osacompile' in das Skript schreibst.
So funktioniert's:
tell application "Script Editor"
set creator_code to "APPL"
set creator_type to "aplt"
set the_string to "activate" & return & "display dialog \"Hello\""
set target_file to (path to desktop as string) & "testscript.app"
do shell script "osacompile -e " & (quoted form of the_string) ¬
& " -o " & (quoted form of POSIX path of target_file) ¬
& " -t " & (quoted form of creator_code) ¬
& " -c " & (quoted form of creator_type) ¬
& " -d"
end tell
-- Damit es auch gleich auf dem Desktop sichtbar wird:
tell application "Finder" to update target_file
Creator- und File-Type werden auch gleich per Shellskript zugewiesen. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Jan •->


Anmeldedatum: 25.05.2004 Beiträge: 7
|
Verfasst am: 26.05.2004 - 13:07 Titel: VIELEN DANK!!!! |
|
|
Hallo Snow,
vielen Dank für die schnelle Hilfe! Die dynamischen Informationsübergabe aus dem Filenmaker schaffe ich jetzt ohne Probleme!
Ich werd mich hier mal öfter umschauen ... vielen Dank!
Jan |
|
Nach oben |
|
 |
Jan •->


Anmeldedatum: 25.05.2004 Beiträge: 7
|
Verfasst am: 26.05.2004 - 15:36 Titel: mmmhhhhh ... os9.1?? |
|
|
zu früh gefreut ... hier auf meinem schönen G5 mit OSX 10.3.3 läufts einwandfrei, dagegen auf dem G3 mit OS 9.1 nicht so ganz, der versteht do shell script und quoted from nicht.
Jan
P.S.: Hab AppleScript soeben mit Software-Aktualisierung aktualisiert[/quote] |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 26.05.2004 - 21:12 Titel: |
|
|
Hallo Jan,
folgender Code führt dazu, dass unter OS 9.1 das Skript zumindest als kompiliertes Skript gespeichert wird:
set the_string to "activate" & return & "display dialog \"Hello\""
set target_file to (path to desktop as string) & "testscript.app"
store script ¬
(run script ¬
"script testscript" & return & ¬
tab & the_string & return & ¬
"end script" & return ¬
& "return testscript") ¬
in file target_file -- with replacing
tell application "Finder" to update target_file
Unter OS X wird mit dem selben Code ein Skript-Applet (Programm) generiert. Das liegt daran, dass unter X die Dateiendung ".app" gleich richtig interpretiert wird. Lässt du die Dateiendung weg, wird auch unter X nur ein kompiliertes Skript erstellt. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Jan •->


Anmeldedatum: 25.05.2004 Beiträge: 7
|
Verfasst am: 28.05.2004 - 09:56 Titel: Ich werds probieren ... |
|
|
Mein Problem ist, das es hier ein paar Rechner gibt, die auf OS9.1 laufen (Bereich Verwaltung) und in der Grafik laufen G5 mit OSX 10.3.3.
Das heißt die Rechner in der Verwaltung werden den Script aus FileMaker raus erzeugen und die G5 mit OSX werden es ausführen um dem FileMaker informationen zu übergeben.
Ich werd´s gleich mal ausprobieren, Script auf nem 9.1 erstellen und moit .app versehen, dann müßte der OSx-Rechner doch gleich ne Application ausführen ... hoffentlich klappts!!!
Jan |
|
Nach oben |
|
 |
Jan •->


Anmeldedatum: 25.05.2004 Beiträge: 7
|
Verfasst am: 28.05.2004 - 10:22 Titel: |
|
|
Klappt leider nicht ... auf OS9.1 wird zwar eine Datei erstellt, die der ScriptEditor wieder öffnet, ausgeführt wird sie auf OS9.1 aber nicht automatisch. Das sit weiter micht schlimm, denn nur die OSX-Rechner müssen die .app-Datei ausführen können.
Also die auf 9.1 produzierte Datei auf einem G5 ausprobiert. Dieser sagt mir leider das die Datei nicht vollständig ist und daher nicht ausgeführt werden kann. Wenn ich Deinen Script aber unter OSX laufen lasse wird die erstellte Datei unter OSX auch ohne Meckern ausgeführt und der Dialog "Hello" erscheint.
Ich versteh es nicht ... ich hoffe ich nerve nicht ... hab halt wenig Ahnung von AppleScript.
Jan[/img] |
|
Nach oben |
|
 |
|