Adlib Enable

  • Hey Leute,
    kann das sein, dass in einem Script nicht 2mal ein Adlib Enable stehen darf?!
    Ich hab nämlich in einem von meinen Scripten 2 Adlib Enable Funktionen drinnen und komischerweise ruft es immer nur eine auf?!
    Das erste Adlib Enable wird alle 20.000 ms aufgerufen und das 2. alle 30.000 ms.
    Danke
    Manlius

    • Offizieller Beitrag

    Es geht nur 1 AdlibEnable Aufruf . Alternativ kannst du aber _Timer_SetTimer benutzen .
    Einfach mal das Hilfebeispiel dazu ansehen .

  • Hallo manilus,

    dann lade dir bei nächster Gelegenheit die neueste Version herunter deutsche Hilfe vom 21.03.2009

    Spoiler anzeigen

    _Timer_SetTimer
    --------------------------------------------------------------------------------

    Erstellt einen Timer mit einem festgelegten Timeout Wert


    #Include <Timers.au3>
    _Timer_SetTimer($hWnd[, $iElapse = 250[, $sTimerFunc = ""[, $iTimerID = -1]]])


    Parameter

    $hWnd Handle zu dem Fenster, welches zu dem Timer gehört.
    Dieses Fenster muß zu dem aufgerufenen Thread gehören
    $iElapse Legt den Timeout Wert in Millisekunden fest
    $sTimerFunc die zu benachrichtigende Funktion wenn der Timeout Wert verstrichen ist
    $iTimerID Legt eine Timer Indetifiaktion fest.
    Falls $iTimerID = -1 dann wird ein neuer Timer erstellt
    Falls $iTimerID auf einen existierenden Timer passt, wird der Timer ersetzt
    Falls $iTimerID = -1 und $sTimerFunc = "", dann werden WM_TIMER Events verwendet


    Rückgabewert

    Erfolg: Integerkennung des neuen Timers
    Fehler: 0


    Bemerkungen

    Keine.


    Verwandte Funktionen

    _Timer_KillTimer, _Timer_KillAllTimers, _Timer_GetTimerID

    Siehe auch

    Search SetTimer in MSDN Library

    Beispiel


    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <Timers.au3>
    #include <GuiStatusBar.au3>
    #include <ProgressConstants.au3>

    Opt("MustDeclareVars", 1)

    Global $iMemo, $hStatusBar, $progress, $percent = 0, $direction = 1

    _Example_CallBack()

    Func _Example_CallBack()
    Local $hGUI, $iTimerProgress, $btn_change, $iWait = 10, $btn_state
    Local $aParts[3] = [75, 330, -1]

    $hGUI = GUICreate("Timer mittels von CallBack-Funktionen", 400, 320)
    $iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, BitOR($WS_HSCROLL, $WS_VSCROLL))
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    $btn_state = GUICtrlCreateButton("Starte Fortschrittsbalken", 75, 265, 150, 25)
    $btn_change = GUICtrlCreateButton("Intervall ändern", 235, 265, 90, 25)
    GUICtrlSetState($btn_change, $GUI_DISABLE)
    $hStatusBar = _GUICtrlStatusBar_Create($hGUI, $aParts)
    _GUICtrlStatusBar_SetText($hStatusBar, "2 Timer:")
    _GUICtrlStatusBar_SetText($hStatusBar, @TAB & @TAB & StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC), 2)
    $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH)
    GUICtrlSetColor($progress, 0xff0000)
    _GUICtrlStatusBar_EmbedControl($hStatusBar, 1, GUICtrlGetHandle($progress))
    GUISetState()

    _Timer_SetTimer($hGUI, 1000, "_UpdateStatusBarClock") ; Erzeuge Timer 1 (Uhr)

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $btn_state
    If GUICtrlRead($btn_state) = "Starte Fortschrittsbalken" Then
    $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "_UpdateProgressBar") ; Erzeuge Timer 2 (Fortschritt)
    If @error Or $iTimerProgress = 0 Then ContinueLoop
    GUICtrlSetData($btn_state, "Stoppe Fortschrittsbalken")
    GUICtrlSetState($btn_change, $GUI_ENABLE)
    Else
    GUICtrlSetState($btn_change, $GUI_DISABLE)
    _Timer_KillTimer($hGUI, $iTimerProgress)
    GUICtrlSetData($btn_state, "Starte Fortschrittsbalken")
    EndIf

    Case $btn_change
    If $iWait = 10 Then
    $iWait = 250
    Else
    $iWait = 10
    EndIf
    MemoWrite("Timer für _UpdateProgressBar auf " & $iWait & " ms gesetzt!")
    $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "", $iTimerProgress) ; Timer mit verschiedenen Intervallen verwenden
    EndSwitch
    EndSwitch
    WEnd
    ConsoleWrite("Alle Timer zerstört? " & _Timer_KillAllTimers($hGUI) & @LF)
    GUIDelete()
    EndFunc ;==>_Example_CallBack

    Func _UpdateStatusBarClock($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
    _GUICtrlStatusBar_SetText($hStatusBar, @TAB & @TAB & StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC), 2)
    EndFunc ;==>_UpdateStatusBarClock

    Func _UpdateProgressBar($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
    $percent += 5 * $direction
    GUICtrlSetData($progress, $percent)
    If $percent = 100 Or $percent = 0 Then $direction *= -1
    If $percent = 100 Then
    GUICtrlSetColor($progress, 0xff0000)
    ElseIf $percent = 0 Then
    GUICtrlSetColor($progress, 0x0000ff)
    EndIf
    EndFunc ;==>_UpdateProgressBar

    ; Gebe eine Zeile im Memo-Fenster aus
    Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

    mfg (Auto)Bert

    • Offizieller Beitrag

    Bei mir gibt´s in der Hilfe die Funktion: _Timer_SetTimer nicht... ?(?(?(

    Findest du in der UDFs Hilfedatei in deinem Autoit Verzeichnis.