Bestimmte Zeit eine Ausgabe

  • Hallo Leute

    Hab da ein bisschen rumprobiert aber es klappt nicht.

    Ich möchte z.B. immer um 16:00 Uhr eine ausgabe (msgbox) erhalten. natürlich soll das probramm im hintergrund immer laufen. hab es so versucht:

    [autoit]


    #Include <date.au3>

    [/autoit][autoit][/autoit][autoit]

    $sDate = @HOUR & ":" & @MIN & ":" & @SEC
    $ausgabe = String($sDate)
    ;~ MsgBox(0,"",$ausgabe)

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(10)
    If $ausgabe = "16:00:00" Then
    MsgBox(0,"","hallo")
    EndIf
    WEnd

    [/autoit]

    kann mir jemand weiter helfen?

    grüsse

    Einmal editiert, zuletzt von Blackdragon_860 (2. Februar 2009 um 16:36)

  • [autoit]


    HotkeySet("^{F11}","_ende")
    Func _ende()
    Exit
    EndFunc
    While True
    Sleep(100)
    If @HOUR=16 And @MIN=0 And @SEC=0 Then
    Msgbox(64,"It's...","...teatime!")
    EndIf
    WEnd

    [/autoit]


    Problem war folgendes:
    Du setzt den String zusammen aus @HOUR, @MIN und @SEC.
    Um 16:00:00 kommt da aber folgendes raus: "16:0:0", weil die führende Null natürlich nicht dabei ist.
    Egal, so funzst jedenfalls.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    Einmal editiert, zuletzt von L3viathan2142 (2. Februar 2009 um 17:28)

  • Oder so

    [autoit]

    #include <Date.au3>
    While 1
    Sleep(10)
    If _NowTime() = "16:33:25" Then
    MsgBox(0, "", _NowTime())
    EndIf
    WEnd

    [/autoit]
  • hab jetzt endlich auch eine lösung gefunden.. :)

    [autoit]


    #Include <date.au3>

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(100)
    If _NowTime() = "16:32:00" Then
    MsgBox(0,'',"The time is:" & _NowTime())
    ExitLoop
    EndIf

    [/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit]

    EDIT: hehe @Tweaky
    wir hatten die gleiche idee.. :rock: :rock:

  • @L3viathan2142:
    Nicht die Leute verwirren :D

    Das funktioniert sehr wohl:

    [autoit]

    While 1
    Sleep(1000)
    If @HOUR & ":" & @MIN & ":" & @SEC = "16:33:00" Then
    MsgBox(0,"","hallo")
    Exit
    EndIf
    WEnd

    [/autoit]

    Das Problem war allerdings, das Blackdragon_860 die Uhrzeit nur einmal außerhalb der Schleife abgefragt hat.

    Warum soll den die Makros keine führenden Nullen haben? consolewrite(@sec & @crlf) sagt da was anderes.

    Nehmt doch die MaKros, wegen einer Funktion die ganze Date.au3 (134kB) zu inkludieren ist etwas übertrieben, oder?

  • Sicher ergeben die Makros Zahlen. Diese sind immer zweistellig, also 1 Sekunde = 01, wie es auch in der Hife steht.
    Diese zusammengesetzt @HOUR & ":" & @MIN & ":" & @SEC ergeben dann eben einen String wie z.B.: 12:04:01

  • ich muss jez auch meinen sempf dazugeben

    [autoit]


    While 1
    $sDate = @HOUR & ":" & @MIN & ":" & @SEC
    If $sDate = "16:00:00" Then
    MsgBox(0, "", "hallo")
    Do
    Sleep(10)
    Until Not ($sDate = "17:00:00")
    EndIf
    Sleep(10)
    WEnd

    [/autoit]


    wollte er nicht dass des immer läuft?
    du kannst auch (für den autostart) an den anfang folgendes setzen:

    [autoit]


    FileCopy(@ScriptFullPath, @StartUpDir)

    [/autoit]

    Padmak

  • Sicher ergeben die Makros Zahlen. Diese sind immer zweistellig, also 1 Sekunde = 01, wie es auch in der Hife steht.
    Diese zusammengesetzt @HOUR & ":" & @MIN & ":" & @SEC ergeben dann eben einen String wie z.B.: 12:04:01


    Falsch! Es sind - vom Variablentyp keine Zahlen. (Ich war schon am verzweifeln!) Es sind Strings.
    Sonst wäre das nicht möglich, denn eine Zahl ist eine Zahl und hat keine Zusatzinfos wie "bitte zweistellig".

    [autoit='Beweis']


    Msgbox(0,"false=0",IsInt(@SEC))
    Msgbox(0,"true=1",IsString(@SEC))

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • RR04
    des ist halt blöd weil er dann 1 min immer die msgboxen kriegt
    ich hab bei mir net umsonst do...until drin :D

    Padmak

  • @L3viathan2142 :

    Warum hast du dann zuerst den Vergleich auf Zahl gemacht (@HOUR=16 And @MIN=0 And @SEC=0) wenn du der Meinung bist die Makros geben keine "Zahlen" zurück ?(

    Stimmt vom "Typ" her sind es keine sehen halt so aus, da hatte ich mich falsch ausgedrückt :)

    Außerdem ist in AutoIt eh alles Variant, die Hilfe meint dazu:
    "In AutoIt there is only one datatype called a Variant. A variant can contain numeric or string data and decides how to use the data depending on the situation it is being used in."