problem mit @hour, @min und @sec

  • hi,

    hab folgendes problem:

    also wenn ich die funktion _Time(2) aufrufe gibt sie mir ja @hour und @min zurück, wenn die zeit dann mit der von mir gewählten zeit übereinstimmt dann soll _sound() aufgerufen werden geht auch alles nur das _sound() dann die ganze minute immer wiederholt wird bis die akutuelle zeit anders ist und das ist nun doof :(

    hat da einer ne idee?

    Spoiler anzeigen
    [autoit]

    while 1
    Select
    Case _Time(2) = "20:00"
    _Sound()
    Case _Time(2) = "21:48"
    _Sound()
    Case _Time(2) = "22:00"
    _Sound()
    Case _Time(2) = "23:00"
    _Sound()
    EndSelect
    sleep(50)
    WEnd

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

    Func _Time($pre)
    If $pre = 1 Then
    Return @HOUR
    ElseIf $pre = 2 Then
    Return @HOUR & ":" & @MIN
    ElseIf $pre = 3 Then
    Return @Hour & ":" & @Min & ":" & @SEC
    EndIf
    EndFunc ;==>_Time($pre)

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

    Func _Sound()
    MsgBox(0,"test","bla bla bla bla bla bla bla")
    EndFunc ;==>_Sound

    [/autoit]

    mit sleep is es ja auch doof weil wenn ich dann _Time(1) nutze muss ich ja eine stunde sleep machen und kann dann ja nicht mehr andere funcs vorher aufrufen.

    thx im vorraus. ;)

  • Ganz einfach:

    Spoiler anzeigen
    [autoit]


    while 1
    Select
    Case _Time(3) = "20:00:00"
    _Sound()
    Case _Time(3) = "21:48:00"
    _Sound()
    Case _Time(3) = "22:00:00"
    _Sound()
    Case _Time(3) = "23:00:00"
    _Sound()
    EndSelect
    sleep(50)
    WEnd

    Func _Time($pre)
    If $pre = 1 Then
    Return @HOUR
    ElseIf $pre = 2 Then
    Return @HOUR & ":" & @MIN
    ElseIf $pre = 3 Then
    Return @Hour & ":" & @Min & ":" & @SEC
    EndIf
    EndFunc ;==>_Time($pre)

    Func _Sound()
    MsgBox(0,"test","bla bla bla bla bla bla bla")
    EndFunc ;==>_Sound

    [/autoit]

    Ich würd immer die komplette zeit zurückgeben.

  • ja ich weiß so hatte ich es vorher ja auch aber das will ich eben nicht immer haben. func _Tilme($pre) ja is ne udf eigentlich hab ich nur eben hier mit rein kopiert.

    also kann man es denn irgendwie hinbekommen? sodass es meinen anforderungen entspricht?

  • *Verwirrt bin*

    Was ist das denn für eine Anfrage? Entweder ich verstehe dein Vorhaben oder deine Ablehnung gegen den Vorschlag nicht.

    Was meinst du mit "aber das will ich eben nicht immer haben"?

    Beschreib das mal ein wenig genauer. So weit ich da sehe ist zio82draws Vorschlag genau das was du suchst oder ich muss in deiner Anfrage irgendetwas übersehen haben, sorry ;)

    Grüße,
    Buffo

  • ok also genauer ;)

    die func _Time($pre) ist eine udf. es soll dadurch die zeit zurückgegeben werden. ich brauche aber nicht immer die ganz genaue zeit, sprich manchmal reicht @Hour dann brauch ich vllt mal @hour und @min... und darum passt der vorschlag von zio82draws nicht so ganz.

    außerden is der vorschlag ja eh schon in der func enthalten ich muss ja nur _Time(3) schreiben.

    mein problem ist nun, dass ich wenn ich _Time(2) aufrufe, also nur @hour und @min: Case _Time(2) = "20:00" und es dann 20:00 uhr ist wird die func _sound() ausgelöst. aber die func wird immer wieder ausgelöst bis es 20:01 ist und das will ich eben nicht. es soll also die func pro case anfrage nur einmal äuslösen und das bekomme ich nicht hin.

    @Buffo: hoffe das, das genau genug war. ;)

  • Ah, jetzt habe ich verstanden ;)

    Probier mal so:

    [autoit]

    While 1
    $sTime = _Time(2) & ":" & @SEC
    Select
    Case $sTime = "20:00:00"
    _Sound()
    Case $sTime = "21:48:00"
    _Sound()
    Case $sTime = "22:00:00"
    _Sound()
    Case $sTime = "23:00:00"
    _Sound()
    EndSelect
    Sleep(50)
    WEnd

    Func _Time($pre)
    If $pre = 1 Then
    Return @HOUR
    ElseIf $pre = 2 Then
    Return @HOUR & ":" & @MIN
    ElseIf $pre = 3 Then
    Return @Hour & ":" & @Min & ":" & @SEC
    EndIf
    EndFunc ;==>_Time($pre)

    Func _Sound()
    MsgBox(0,"test","bla bla bla bla bla bla bla")
    EndFunc ;==>_Sound

    [/autoit]
  • ich hab das jetz noch nich getestet aber is das nich genau das selbe wie _Time(3)? dein $sTime holt ich ja @hour und @min von der func und setzt noch @sec hinten ran. dann hab ich ja wieder 3 zahlen.

    aber ich teste mal

  • Natürlich hast du drei Zahlen. Wie willst du denn sonst nur zu einer gweissen Sekunde den Befehl ausführen lassen? Durch das Anhängen von @SEC bekommt man ja die gerade aktuelle Sekunde, diese wird mit dem Rest verglichen und nur wenn das alles passt wird der Befehl ausgeführt.

    Sorry, falls ich dich immer noch nicht verstanden haben sollte. Aber ich stehe gerade irgendwie auf dem Schlauch ;)

    Was ist an drei Zahlen auszusetzen? Geht imho gar nicht anders...

    Grüße,
    Buffo

  • Ich, Alina, beschuldige die beiden hier postenden User, mich meiner geplanten Ruhestunden am heutigen Abend beraubt zu haben. Die Schwere der Tat wird wie folgt nachgewiesen. Die Tat wird bereits vor der Vollendung zu einem nicht reparablen Zustand bei der hier posteten Userin hinterlassen. Strafbar gemäß ...

    Okay, okay, war nur SPASS !!! :D

    Ich verfolge gerade diesen Beitrag und da kommen mir sehr viele Ideen bezüglich der Funktion.

    Wenn ich so überlege, kann man daraus einige andere schöne Funktionen machen. In diesem Beitrag geht es ja um Zeit, aber sicherlich kann man eine solche Funktion daraus erstellen, in der es dann um Datum geht (Zeit durch Datum tauschen?)

    Und wenn man aus einer Datei Daten einlesen möchte, die zum Beispiel horizontal eine Trennung durch den Doppelpunkt hat, dann sollte man meinen, kann man das durch eine Veränderung der Funktionsparameter auch ausführen lassen. Oder irre ich mich da gerade?

    Aber ist schon komisch. Vor einem Jahr, da dachte ich nicht einmal an solche Möglichkeiten, heute suche ich schon in geposteten Scripten Ideen für eine Erleichterung am PC. eigentlich schichtet man nur seine Zeit um, oder? Ist nicht negativ gemeint, sondern eher "lustig". Man hat den Spaß am "entwickeln & lernen" und benötigt dafür einiges an Zeit, die man dann später bei der Scriptnutzung einspart. Irgendwie eine "verrückte" Sache. Okay, jetzt bin ich soweit, das ich anderen auch Arbeitsabläufe vereinfachen kann, aber dennoch braucht man irgendwie immer einen 48-Stunden Tag.

    Okay, bisschen am Thema z. T. vorbei, aber so sind meine Gedanken nun ab und an ;)

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (20. November 2007 um 15:10)

  • So sieht das ganze mit Datumsangaben aus:

    [autoit]


    ; @MDAY : Tag zweistellig
    ; @MON : Monat zweistellig
    ; @Year : Jahr vierstellig

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

    While 1
    $sTime = _Time(2) & "." & @YEAR
    Select
    Case $sTime = "19.11.2007"
    _Sound()
    Case $sTime = "20.11.2007"
    _Sound()
    Case $sTime = "21:11:2007"
    _Sound()
    Case $sTime = "22.11.2007"
    _Sound()
    EndSelect
    Sleep(50)
    WEnd

    Func _Time($pre)
    If $pre = 1 Then
    Return @MDAY
    ElseIf $pre = 2 Then
    Return @MDAY & "." & @MON
    ElseIf $pre = 3 Then
    Return @MDAY & "." & @MON & "." & @YEAR
    EndIf
    EndFunc ;==>_Time($pre)

    Func _Sound()
    MsgBox(0,"test","bla bla bla bla bla bla bla")
    Exit
    EndFunc ;==>_Sound

    [/autoit]

    Edit:
    Exit mit eingebaut, damit die MsgBox nur einmal angezeigt wird.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    2 Mal editiert, zuletzt von Alina (20. November 2007 um 15:38)

  • jop hab ich auch schon fertig^^ os sieht jetz meine udf aus:

    Spoiler anzeigen
    [autoit]

    Func _Time($pre)
    If $pre = 1 Then
    Return @HOUR
    ElseIf $pre = 2 Then
    Return @HOUR & ":" & @MIN
    ElseIf $pre = 3 Then
    Return @Hour & ":" & @Min & ":" & @SEC
    EndIf
    EndFunc ;==>_Time($pre)

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

    ;~ =============================================================

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

    Func _Date($prae)
    If $prae = 1 Then
    Return @YEAR
    ElseIf $prae = 2 Then
    Return @MON & "." & @YEAR
    ElseIf $prae = 3 Then
    Return @MDAY & "." & @MON & "." & @YEAR
    EndIf
    EndFunc ;==>_Date($prae)

    [/autoit]
  • @Mignon
    Ich glaube beid er Date-Funktion muss vorne immer das Jahr (@YEAR) stehen, dann der Monat und dann der Tag. Also meines sieht so aus zum testen:

    [autoit]

    ; @MDAY : Tag zweistellig
    ; @MON : Monat zweistellig
    ; @Year : Jahr vierstellig

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

    While 1
    $sTime = _Time(2) & "." & @YEAR
    Select
    Case $sTime = "19.11.2007"
    _Sound()
    Case $sTime = "20.11.2007"
    _Sound()
    Case $sTime = "21:11:2007"
    _Sound()
    Case $sTime = "22.11.2007"
    _Sound()
    EndSelect
    Sleep(50)
    WEnd

    Func _Time($pre)
    If $pre = 1 Then
    Return @MDAY
    ElseIf $pre = 2 Then
    Return @MDAY & "." & @MON
    ElseIf $pre = 3 Then
    Return @MDAY & "." & @MON & "." & @YEAR
    EndIf
    EndFunc ;==>_Time($pre)

    Func _Sound()
    MsgBox(0,"Heute ist ...","... der " & $sTime & " aber bald ist Weihnachten")
    Exit
    EndFunc ;==>_Sound

    [/autoit]

    Siehst Du, so lernt man voneinander und bekommt voneinander neue Anwendungsidee.

    Tja, das Forum ist und bleibt meine Nummer-1 !!!

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (20. November 2007 um 15:46)

  • Alina: genau so seh ich das auch^^ xD hast du noch n paar ideen? ich mag deine ideen die sind gut ;)

    EDIT: Alina: hmm....kann gut sein aber warum denn man sagt ja auch 20.11.2007 also @mday @mon und @year oda was?

    Einmal editiert, zuletzt von .::Mignon::. (20. November 2007 um 15:49)

  • @Mignon.

    Ob ich noch Ideen habe?

    Das war jetzt nicht ernst gemeint, oder?

    Naja, was kann man noch nach Bereichen Teilen?

    - Mac Adresse
    - durch Excel exportierte Daten
    - seriennummernlisten (legale versteht sich)
    - Datenbankfelder welche z. B. durch Komma getrennt sind

    usw. Also das finde ich eine gute Idee. Hoffe das der erste Poster es uns nicht übel nimmt, das wir bisschen am Thema vorbei posten oder auch nur im weiterenSINNE das Thema bearbeiten.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hab mal ne Frage gibt es hier im Forum schon ne Uhr die wenn man die öffnet ganznormal weiter tikt ohne MsgBox

    ich könnte schwörn das ich hier i-wo das schon mal gesehen habe

  • @Mignon

    Ich weiß es gar nicht so genau? Ist das eine Eingabe, d. h. wenn man Tag.Monat.Jahr eingibt, dann wird auf den Tag genau "gearbeitet", bei Monat.Jahr bezieht sich die "Arbeit" auf den ganzen Monat. Naja, die Funktionen stehen und man kann ja beide testen und man nimmt sich zum anpassen der eigenen scripte die Bereiche die man braucht ;)

    Zitat

    Original von .::Mignon::.
    Alina: genau so seh ich das auch^^ xD hast du noch n paar ideen? ich mag deine ideen die sind gut ;)

    EDIT: Alina: hmm....kann gut sein aber warum denn man sagt ja auch 20.11.2007 also @mday @mon und @year oda was?


    Ich meine da auch mal was gesehen zu haben. Das war aber über ein GUI und nicht über eine transparente Msg. oder der Gleichen.

    Zitat

    Original von Darki
    Hab mal ne Frage gibt es hier im Forum schon ne Uhr die wenn man die öffnet ganznormal weiter tikt ohne MsgBox

    ich könnte schwörn das ich hier i-wo das schon mal gesehen habe

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (20. November 2007 um 15:58)

  • Alina: seh ich auch so wer das mal brauchen kann muss das dann eben an sein script anpassen oda ich schreib einfach mal beide wege in die udf xD

    @Darki: du kannst ja ne gui benutzen da n label rein machen und dann meine _Time() func nutzen sollte gehe wenn du die in n while schleife schreibst ;)