• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Zeit bestimmen mit Apple Script

wapplegraph

Normande
Registriert
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:
 

Daisy

Uelzener Rambour
Registriert
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.
 

wapplegraph

Normande
Registriert
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
 

Daisy

Uelzener Rambour
Registriert
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.