Skript zwischendrin einfach kurz warten lassen?

Schmittmann

Mitglied
Thread Starter
Registriert
19.11.2003
Beiträge
116
'n Abend miteinander,

Ich befasse mich seit gestern mit AppleScript und kenn mich deshalb auch noch nicht allzugut aus, deshalb bitte ich um Nachsicht, falls meine Frage blöd sein sollte:
Ich will mit einem Skript ein Image mounten und anschließend ein Programm starten, dass sich auf diesem Image befindet. Dummerweise braucht das Mounten ja ne gewisse Zeit - und zwischendurch hat mir das Skript dann schon längst ne Fehlermeldung vonwegen "Datei nich da" (sinngemäß) ausgespuckt. Wenn ich das ganze mit "with timeout..." mache, krieg ich zwar keine Fehermeldung, aber das Programm wird trotzdem nicht gestartet.

Deshalb meine Frage: kann ich das Skript einfach ne bestimmte Zeit (z.B. 20 Sekunden oder so) zwischen Mounten des Images und Öffnen des Programmes warten lassen, in der der Mount-Vorgang auf jeden Fall abgeschlossen sein dürfte?
Oder - was natürlich noch besser wäre - kann ich dem Skript sogar sagen: "Warte bis Volume XY erscheint, bevor du weitermachst!"

Hoffe das geht irgendwie

Schmittmann
 
Zuletzt bearbeitet:

Andi

Aktives Mitglied
Registriert
16.05.2002
Beiträge
8.834
...

Hallo Schmittmann,

was möchtest Du denn genau machen? Wenn Du einen Alias des Programms auf dem Desktop oder im Dock anlegst, wird bei Doppelklick das Image gemountet und das Programm gestartet.
Das selbe gilt, wenn Du den Alias per Skript öffnest.

with timeout 20 --das Skript wartet 20 sec auf die Bestätigung des Befehls
end timeout
oder
delay 20 --das Skript hält 20 sec an


Gruß Andi
 

Schmittmann

Mitglied
Thread Starter
Registriert
19.11.2003
Beiträge
116
Besten Dank Andi.
Das war genau das, was ich meinte. huhu, klappt ausgezeichnet.

also schönen Abend noch

Schmittmann
 

Snow

Mitglied
Registriert
24.03.2003
Beiträge
262
repeat
set VolumeListe to list disks
if VolumeListe contains "VolumeName" then
exit repeat
end if
else
delay 1 -- kleines Päuschen
end repeat

Baue diese Schleife ein - natürlich musst du den Namen des Volumes richtig angeben, sonst hast du eine Endlosschleife.

In der Schleife werden die Namen der gemounteten Volums geprüft, sobald das gewünschte Volume dabei ist, wird die Schleife verlassen. Ansonsten folgt erst mal eine Sekunde Pause und die Überprüfung wird erneut vorgenommen. Die Pause solltest du einbauen und evtl. noch um ein paar Sekunden verlängern, das spart Rechenzeit. Es bringt ja nichts, wenn die Schleife wie wild durchrattert.
 

Schmittmann

Mitglied
Thread Starter
Registriert
19.11.2003
Beiträge
116
@ andi: obwohl eine frage vielleicht noch (auch wenn sich das jetzt en bisschen wirr anhört): wenn ich das image - also die dmg-datei, nicht das beinhaltete virtuelle Laufwerk - zusammen mit dem alias und dem skript auf ne cd/dvd brenne, funktioniert das dann immernoch? (also is jetzt nur interessehalber und nicht weil ich's unedingt akut bräuchte)



Danke nochmal

Schmittmann
 
Zuletzt bearbeitet:

Schmittmann

Mitglied
Thread Starter
Registriert
19.11.2003
Beiträge
116
Danke, Schneemensch ;)

ich bin verblüfft was mit AS alles geht. werd ich denke ich aber heute nicht mehr ausprobieren, weil ich morgen früh raus muss (5:15 Uhr MEZ).

gruß

Schmitttmann
 
Zuletzt bearbeitet:

Schmittmann

Mitglied
Thread Starter
Registriert
19.11.2003
Beiträge
116
konnte mich doch nicht zurückhaalten und hab's gleich mal probiert:

sicher, dass das mit der Reihenfolge von else und end if und delay stimmt, oder hab ich mich da nur vertippt, weil irgendwie meckert er da?
 

Schmittmann

Mitglied
Thread Starter
Registriert
19.11.2003
Beiträge
116
juhuuu, hab's hingekriegt:

repeat
set VolumeListe to list disks
if VolumeListe contains "VolumeName" then
exit repeat
else
delay 1
end if
end repeat

Also danke nochmal an Andi und Snow für die Hilfe

Gute Nacht

Schmittmann
 

Andi

Aktives Mitglied
Registriert
16.05.2002
Beiträge
8.834
...

Hallo Schmittmann,

ich denke mal das würde auch auf CD/DVD funktionieren.

Hört sich auch wirr an. Ein komprimiertes Image oder ein Image mit Password?

Autostart sollte bei OS X nicht mehr möglich sein.

?Andi
 
Oben