_Timer_SetTimer() funktioniert nicht

  • Hi Leute,
    was bitte habe ich hier falsch gemacht? ^^

    [autoit]

    #Include <Timers.au3>
    $hGUI = GUICreate("Test")
    _Timer_SetTimer($hGUI, 300, "_stop")

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

    While 1
    WEnd

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

    Func _stop()
    MsgBox(0,"","Test")
    _Timer_KillAllTimers($hGUI)
    EndFunc

    [/autoit]


    MfG
    qixx

  • Ich weiß es auch nicht aber teste doch mal das (macht das gleiche)

    [autoit]


    #Include <Timers.au3>
    $hGUI = GUICreate("Test")
    $Timer = TimerInit()

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

    Do
    Until TimerDiff($Timer) >= 2000 ;ich habe mal 2 Sek genommen

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

    _Stop()

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

    Func _stop()
    MsgBox(0,"","Test")
    EndFunc

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Spoiler anzeigen
    [autoit]

    #include <Timers.au3>
    $hGUI = GUICreate(Random(1, 100, 1), 400, 320)
    GUISetState()
    _Timer_SetTimer($hGUI, 300, "_stop")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _stop($hWnd, $Msg, $iIDTimer, $dwTime)
    WinSetTitle($hGUI, "", Random(1, 100, 1))
    ;~ MsgBox(0, "", "Test")
    ;~ _Timer_KillAllTimers($hGUI)
    EndFunc ;==>_stop

    [/autoit]
  • Danke, das Problem aber ist, dass ich diesen Timer
    des öfteren verwenden muss.
    Also ich muss den nach einem Erfolg irgendwie wieder
    zurücksetzen auf 0.


    Wie kann ich das denn erreichen?


    @anno: Dankeschön! :thumbup:
    Aber warum muss man einen solchen Quark da einfügen
    und bekommt das aber nicht in der Hilfe mitgeteilt? oO


    MfG
    qixx

  • Hier mal n BSP wenn du ihn wieder brauchst:

    [autoit]


    #Include <Timers.au3>
    $hGUI = GUICreate("Test")
    $Timer = TimerInit()

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

    While 1
    If TimerDiff($Timer) >= 2000 Then
    $Timer = TimerInit()
    _Stop()
    WEnd

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

    Func _stop()
    MsgBox(0,"","Test")
    EndFunc

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal


  • Danke, aber ich meinte damit, dass ich den Timer
    irgendwann wieder anschalte. ;)
    Aber das Problem ist ja schon gelöst. ;)


    MfG
    qixx

  • Der Vorteil gegenüber Adlibregister ist aber, dass die Timer funktionen über DLLCallback arbeiten. Das heißt die arbeiten auch weiter, wenn das Script pausiert ist, oder ne MsgBox offen ist. Für Spieleprogrammieren ist das nützlich, falls man events per Timer aktualisieren will.