1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Zeit bestimmen mit Apple Script

Dieses Thema im Forum "AppleScript" wurde erstellt von wapplegraph, 30.08.06.

  1. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Also habe zwei Fragen zu AppleScript:

    Wie kann ich die Zeit bestimmen, d.h. dann und dann (tell app "" .........)

    Ist es möglich, dass sich ein Skript aktiviert, wenn z.B. der Computer 3mal gestartet hat? Wenn ja wie. Oder gibt es ähnliche Lösungen?

    Danke wapplegraph:cool:
     
  2. Daisy

    Daisy Uelzener Rambour

    Dabei seit:
    14.01.06
    Beiträge:
    366
    Moin wapplegraph,

    in AppleScript arbeitest du mit der Zeit mit dem 'date'-Befehl, die momentane Zeit bestimmst du mit 'current date' - hier ein kleines Beispiel:

    Code:
    set endtime to (current date) + 20 -- das sind Sekunden hier ginge auch  2*hours, 10*days etc...
    repeat while ((current date) < endtime)
    	display dialog "wait " & (endtime - (current date)) & " seconds" giving up after 2
    end repeat
    display dialog "done"
    Um auf einen bestimmten Zeitpunkt mit der Ausführung des Scripts zu warten zu warten, könntest du diesen Befehl in einer 'on idle'-Schleife einsetzen (als Programm mit der Option 'Nicht automatisch beenden' speichern, sonst funktioniert's nicht):

    Code:
    global endtime
    set waittime to text returned of (display dialog "Wie lange möchtest du warten (in Sekunden)?" default answer "5") as integer
    
    set endtime to (current date) + waittime
    
    on idle
    	if ((current date) ? endtime) then
    		display dialog "Fertig"
    		quit
    	end if
    	return 2
    	
    end idle
    Aber es gibt noch eine bessere Methode, wenn du mit der Ausführung eines (Script-)-Programms auf einen Zeitpunkt warten möchtest, der weiter entfernt liegt, oder es regelmäßig zu starten (jeden Tag um 17 uhr, alle 2 Stunden, jeden 1. im Monat etc.). Schau dir dazu die Shell-Befehle cron und launchd an (wurde hier im Forum schon mehrmals erklärt ..)

    Und zum dritten Neustart – das könnte ich mir so vorstellen:

    Du schreibst ein Scriptprogramm, das du zu deinen Startobjekten legst, das dann bei jedem Start einen wert in den userdefaults inkrementiert - und wenn der 3 ist, dann wir er zurückgesetzt und du führst was auch immer aus ... das könnte dann so funktionieren (ungetestet):

    Code:
    try
    	set restartCount to (do shell script "defaults read com.test.restarts startnr") as integer
    on error
    	set restartCount to 0
    end try
    set restartCount to restartCount + 1
    if (restartCount = 3) then
    	display dialog "3. Neustart"
    	set restartCount to 0
    end if
    do shell script "defaults write com.test.restarts startnr '" & restartCount & "'"
    
    'com.test.restarts' ist natürlich nur ein Beispiel, du kanst das auch anders nennen - um den Eintrag wieder loszuwerden, tippst du im Terminal:
    Code:
    defaults delete com.test.restarts
    Ich hoffe, das bringt dich weiter ...

    Grüße,

    D.
     
  3. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Also das mit der Aktion um eine bestimmte Zeit,will und will einfach nicht klappen. Irgedwie hat er da ein Problem.
    Brauche hier Hilfe. Für die cron und launchd Befehle habe ich nirgends etwas brauchbares gefunden, nur im Zusammenhang mit dem Terminal. Das Herunterzählen klappt, ist jedoch nicht die Lösung.

    Die Lösung mit dem Neustart und dem Zähler, wird wohl zur endgültigen Lösung führen. Habe es jeoch och nicht getestet.

    wapplegraph
     
  4. pete

    pete Gast

    Und, chohn geestet?
     
  5. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Zu diesem Befehl finde ich bei google keine Informationen.

    Bitte um Hilfestellung
     
  6. Daisy

    Daisy Uelzener Rambour

    Dabei seit:
    14.01.06
    Beiträge:
    366
    Ich nehme an, das Hilfeersuchen bezieht sich auf launchd und cron?

    leider sind diese Shellbefehle nicht die einfachsten - Aber es gibt einige Tools, die das Einrichten etwas einfacher machen. Aber um abschließend sagen zu können, ob die diese Tools was helfen können, müsstest du etwas genauer sagen, was du damit vorhast. Hier etwas Lektüre:

    Launchd:

    http://developer.apple.com/macosx/launchd.html
    http://www.macosxhints.ch/portal_hint_print.php?hintid=1759
    http://en.wikipedia.org/wiki/Launchd
    http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html
    ...

    Cron:
    http://de.wikipedia.org/wiki/Cron
    http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/crontab.1.html
    ...

    Grüße,

    D.
     

Diese Seite empfehlen