Skript zwischendrin einfach kurz warten lassen?

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von Schmittmann, 26.01.2005.

  1. Schmittmann

    Schmittmann Thread Starter MacUser Mitglied

    Beiträge:
    116
    Zustimmungen:
    0
    MacUser seit:
    19.11.2003
    '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: 26.01.2005
  2. Andi

    Andi MacUser Mitglied

    Beiträge:
    7.848
    Zustimmungen:
    653
    MacUser seit:
    16.05.2002
    ...

    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
     
  3. Schmittmann

    Schmittmann Thread Starter MacUser Mitglied

    Beiträge:
    116
    Zustimmungen:
    0
    MacUser seit:
    19.11.2003
    Besten Dank Andi.
    Das war genau das, was ich meinte. huhu, klappt ausgezeichnet.

    also schönen Abend noch

    Schmittmann
     
  4. Snow

    Snow MacUser Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    MacUser seit:
    24.03.2003
    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.
     
  5. Schmittmann

    Schmittmann Thread Starter MacUser Mitglied

    Beiträge:
    116
    Zustimmungen:
    0
    MacUser seit:
    19.11.2003
    @ 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: 26.01.2005
  6. Schmittmann

    Schmittmann Thread Starter MacUser Mitglied

    Beiträge:
    116
    Zustimmungen:
    0
    MacUser seit:
    19.11.2003
    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: 14.04.2005
  7. Schmittmann

    Schmittmann Thread Starter MacUser Mitglied

    Beiträge:
    116
    Zustimmungen:
    0
    MacUser seit:
    19.11.2003
    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?
     
  8. Schmittmann

    Schmittmann Thread Starter MacUser Mitglied

    Beiträge:
    116
    Zustimmungen:
    0
    MacUser seit:
    19.11.2003
    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
     
  9. Andi

    Andi MacUser Mitglied

    Beiträge:
    7.848
    Zustimmungen:
    653
    MacUser seit:
    16.05.2002
    ...

    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
     

Diese Seite empfehlen