Funktion alle x Sekunden benutzen

  • Nabend liebe Leute
    ich wüsste gerne mal wie man das machen kann das man ein bestimmte Funktion z.B. alle 5 Sekunden benutzen kann ohne das dabei das ganze Script pausiert oder ist das überhaupt möglich.
    Hoffe ihr habt ne Idee

    MFG Raicoon

    Einmal editiert, zuletzt von Raicoon (17. Juli 2010 um 10:04)

  • Nabend liebe Leute
    ich wüsste gerne mal wie man das machen kann das man ein bestimmte Funktion z.B. alle 5 Sekunden benutzen kann ohne das dabei das ganze Script pausiert oder ist das überhaupt möglich.
    Hoffe ihr habt ne Idee

    MFG Raicoon

    schau dir die Hilfe zu

    [autoit]

    AdlibRegter

    [/autoit]

    an,

    mfg (Auto)Bert

  • Cool danke für die schnelle antwort aber mit diesem Befehl wird die funktion ja automatisch ausgeführt ich möchte aber das man sie nur alle 5 sekunden aufrufen kann.

    MFG Raicoon

  • Hatte mir die schon mal angeschaut weiß aber nicht wie ich die dafür benutzen kann.

    MFG Raicoon

  • Pseudocode:

    [autoit]

    $timerinit=0
    _Func()

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

    while 1
    if Timerdiff($timerinit) > 5000 then
    _Func()
    exitloop
    endif
    wend
    _Func()
    ;dein code
    $timerinit=Timerinit()
    endfunc

    [/autoit]
  • Quick & dirty:

    [autoit]

    Global $timer="startwert"
    Func _nuralle5sec()
    If $timer="startwert" Then
    $timer=TimerInit()
    ElseIf TimerDiff($timer) < 5000 Then
    Return False
    EndIf
    ;Hauptfunktion
    EndFunc

    [/autoit]

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

  • ich hatte eher an soetwas gedacht:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Opt('GUIOnEventMode', 1)

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

    Local $hMainGui = GUICreate("Testaufruf für EditBox", 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    Local $hlblZahl = GUICtrlCreateLabel("", 10, 10, 200, 25)
    Local $hbtnZahl = GUICtrlCreateButton('&Zahl eingeben', 220, 10, 150, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    GUICtrlSetOnEvent(-1, '_CallZahl')
    Local $hlblAdLib = GUICtrlCreateLabel("", 10, 100, 200, 25)
    GUICtrlSetFont(-1,20,400)
    GUISetState()
    AdlibRegister("JustCount",1000)

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

    While 1
    Sleep(120)
    WEnd

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

    func JustCount()
    GUICtrlSetData($hlblAdLib,GUICtrlRead($hlblAdLib)+1)
    EndFunc

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

    Func _End()
    GUIDelete($hMainGui)
    Exit
    EndFunc ;==>_End

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

    Func Enable()
    GUICtrlSetState($hbtnZahl,$GUI_ENABLE)
    AdlibUnRegister("Enable")
    EndFunc

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

    Func _CallZahl()
    ;Function Name..: _EditBox($sQuestion, [, $sTitle] [, $hParent] [, $sEditStyle] [, $iWidth] [, $iHeight] [, $iLeft] [, $iTop], $hCaller)
    Local $sAnswer = _EditBox('Bitte eine Zahl eingeben:', 'Test EditBox ', $hMainGui, $ES_NUMBER, 200, 100, -1, -1)
    GUICtrlSetData($hlblZahl, $sAnswer)
    GUICtrlSetState($hbtnZahl,$GUI_DISABLE)
    AdlibRegister("Enable",5000)
    EndFunc

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

    ;===============================================================================
    ;Function Name..: _EditBox($sQuestion, [, $sTitle] [, $hParent] [, $sEditStyle] [, $iWidth] [, $iHeight] [, $iLeft] [, $iTop], $hCaller)
    ;Description....: zeigt eine Gui mit einer Eingabeufforderung und einem EditFeld
    ;Parameter(s)...: $iQuestion = Eingabeaufforderung
    ; $sTitle = Fenstertitel (optional)
    ; $hParent = ID des aufrufenden Fensters (optional, Stabdard = 0)
    ; wenn dieser Parameter übergeben wird verhält wird das Anzeigefenster
    ; Modal angezeigt, d.h. es ist automatisch im Vordergrund
    ; vor dem aufrufenden Fenster (verliert aber leider den Focus, beim Wechsel
    ; zu anderer Anwendung und wieder zurück, d.h man muß einmal in das Fenster klicken)
    ; $sEditStyle = Edit-Style für EditCtrl (optional)
    ; $sGuiStyle = Gui-Style für Anzeigefenster (optional)
    ; $iWidth = Breite des Fensters (optional, Standard = 250 Pixel)
    ; $iHeight = Höhe des Fensters (optional, Standard = 200 Pixel)
    ; $iLeft = Abstand von links (optional, Standard = zentriert)
    ; $iTop = Abstand von oben (optional, Standard = zentriert)
    ; $hnFocused = Steuerelement, das nach (optional, Standard = 0) funktioniert nur zusammen mit $hParent
    ; beendigen von _EditBox, den Focus erhält
    ;Return Value...: $sAnswer
    ;Author.........: (Auto)Bert
    ; Vorlage GUI-Darstellung Oscar's (http://www.autoit.de) _StringDisplay
    ; in Anfängerfragen zur GUI(Checkbox,Inputbox und welches Gui Konzept) Beitrag #5
    ;===============================================================================
    Func _EditBox($sQuestion, $sTitle = 'Benutzereingabe nötig! ', $hParent = 0, $EditStyle = -1, $iWidth = 250, $iHeight = 200, $iLeft = -1, $iTop = -1, $hnFocused = 0)
    Local $hGui
    If Not IsDeclared('BS_DEFPUSHBUTTON') Then Local Const $BS_DEFPUSHBUTTON = 0x00000001
    If Not IsDeclared('GUI_EVENT_CLOSE') Then Local Const $GUI_EVENT_CLOSE = 0xFFFFFFFD
    If Not IsDeclared('WS_EX_COMPOSITED') Then Local Const $WS_EX_COMPOSITED = 0x02000000
    If Not IsDeclared('WS_MAXIMIZEBOX') Then Local Const $WS_MAXIMIZEBOX = 0x00010000
    If Not IsDeclared('WS_MINIMIZEBOX') Then Local Const $WS_MINIMIZEBOX = 0x00020000
    If Not IsDeclared('WS_SIZEBOX') Then Local Const $WS_SIZEBOX = 0x00040000
    Local $iEventMode = Opt('GUIOnEventMode', 0)
    If $hParent = 0 Then
    $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    Else ;damit sich das Fenster wie ein Toolwindow verhält
    $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($DS_MODALFRAME + $DS_SETFOREGROUND, $WS_CAPTION + $WS_SYSMENU + $WS_SIZEBOX), $WS_EX_TOOLWINDOW, $hParent)
    GUISetState(@SW_DISABLE, $hParent)
    EndIf
    GUISwitch($hGui)
    GUISetState(@SW_HIDE, $hGui)
    Local $hedtAnswer = GUICtrlCreateInput("",5, 5, $iWidth - 10, $iHeight - 35, $EditStyle)
    Local $hClose = GUICtrlCreateButton('&Rückgabe', $iWidth / 2 - 35, $iHeight - 25, 70, 25);, $BS_DEFPUSHBUTTON)
    GUICtrlSetState(-1, $GUI_DEFBUTTON)

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

    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKRIGHT)
    ;ControlFocus($hGui, '', $hClose)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case $hClose, $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    If $hParent <> 0 Then
    GUISetState(@SW_ENABLE, $hParent)
    GUISetState(@SW_SHOWNORMAL, $hParent)
    if $hnFocused <> 0 Then
    ControlFocus($hGui, '', $hnFocused)
    ConsoleWrite("Focus to: " & $hGui & " " & $hnFocused)
    EndIf
    EndIf
    Local $sAnswer = GUICtrlRead($hedtAnswer)
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $iEventMode)
    Return $sAnswer
    EndFunc ;==>_EditBox

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

    Edit: bei L3viathan kommst du ohne Adlib aus

    mfg (Auto)Bert