• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Timer mit AppleScript

Kernelpanik

Maren Nissen
Registriert
05.03.04
Beiträge
2.303
Ich versuche ein Script zu basteln das eine Webseite zu einer bestimmten Zeit öffnet. Wenn ich die Zahlen als absoluten Wert in das Script integriere funktioniert es. Wenn ich die Werte aber über einen Dialog eingebe nicht.
Code:
property hourTime : ""
property minutesTime : ""
display dialog "Enter hour" default answer ""
set hourTime to result
display dialog "Enter minutes" default answer ""
set minutesTime to result

repeat
    set runTime1 to hours of (current date)
    set runTime2 to minutes of (current date)
    delay 4
    if runTime1 contains hourTime and runTime2 contains minutesTime then
        tell application "Safari"
            tell window 1
                set current tab to (make new tab at end of tabs with properties {URL:"http://www.srf.ch/livestream/player/srf-2"})
            end tell
        end tell
        return
    end if
end repeat
 
Zuletzt bearbeitet:

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Hallo,

in der Variablen result ist nicht nur der eingegebene Text, sondern auch der geklickte Button enthalten. Es muss also text returned of result heißen. Außerdem ist runtime1/2 ein Integer und hour-/minutesTime ein String, das lässt sich nicht mit contains vergleichen.
 
  • Like
Reaktionen: Kernelpanik

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
contains funktioniert nur mit Listen, Strings oder Records. Wenn ein anderer Datentyp mit contains überprüft wird, dann wird daraus eine 1-elementige Liste (z.B. wird 1234 zu {1234}).
Wenn ein String überprüft werden soll, dann erwartet contains einen String. Sollte kein String übergeben werden, wird versucht die übergebene Variable in einen String umzuwandeln.

Hier ein paar Beispiele, damit das ganze anschaulicher wird:

Code:
set theInteger to 1234
set theString to "1234"
set theList to {12, 34}
set theTime to "12:34"

-- theInteger as list ist {1234}, daher
-- "1234", 3 oder {12,34} ist nicht in {1234}:
log theInteger contains theString --false
log theInteger contains 3 --false
log theInteger contains theList --false
-- Aber 1234 ist in {1234}:
log theInteger contains (theString as integer) --true

-- Das dagegen geht:
log theString contains theInteger --true
log theString contains "3" --true
log theString contains theList --true

-- Dein Beispiel:
-- theList wird zum String, aus {12,34} wird "1234":
log theTime contains theList --false
-- Das dagegen geht:
log theTime contains 12 --true
log theTime contains "34" --true
log theTime contains "12:34" --true

Und zum Abschluss noch die offizielle Doku: https://developer.apple.com/library...ml#//apple_ref/doc/uid/TP40000983-CH5g-125019
 
  • Like
Reaktionen: Kernelpanik