Fenster verschieben, Script nicht pausieren

  • Hi,

    wenn ich in meinem Programm das Child Fenster verschiebe dann wird das Script während dem verschieben pausiert. Kann ich das irgendwie ausschalten?


    so hab das jetzt gelöst aber wenn ich mit der maus auf die child fenster klicke ignoriert ispressed das einfach eine gewissen zeit. muss mindestens 2 sek daraufleiben das es geht. klicke ich jedoch daneben geht es sofort.

    2 Mal editiert, zuletzt von manuel6000 (29. September 2012 um 15:47)

  • Gleiche Frage hatte ich auch mal ;P

    [autoit]

    _Timer_SetTimer()

    [/autoit]

    Das sollte dir definitiv weiterhelfen :D


    Das Beispielscript aus der Hilfe:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Timers.au3>
    #include <GuiStatusBar.au3>
    #include <ProgressConstants.au3>

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

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

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

    _Example_CallBack()

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

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

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

    $hGUI = GUICreate("Timers Using CallBack Function(s)", 400, 320)
    $iMemo = GUICtrlCreateEdit("", 2, 32, 396, 226, BitOR($WS_HSCROLL, $WS_VSCROLL))
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    $btn_state = GUICtrlCreateButton("Start Progress Bar", 70, 270, 100, 25)
    $btn_change = GUICtrlCreateButton("Change", 215, 270, 90, 25)
    GUICtrlSetState($btn_change, $GUI_DISABLE)
    $hStatusBar = _GUICtrlStatusBar_Create($hGUI, $aParts)
    _GUICtrlStatusBar_SetText($hStatusBar, "Timers")
    _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()

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

    _Timer_SetTimer($hGUI, 1000, "_UpdateStatusBarClock") ; create timer

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $btn_state
    If GUICtrlRead($btn_state) = "Start Progress Bar" Then
    $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "_UpdateProgressBar") ; create timer
    If @error Or $iTimerProgress = 0 Then ContinueLoop
    GUICtrlSetData($btn_state, "Stop Progress Bar")
    GUICtrlSetState($btn_change, $GUI_ENABLE)
    Else
    GUICtrlSetState($btn_change, $GUI_DISABLE)
    _Timer_KillTimer($hGUI, $iTimerProgress)
    GUICtrlSetData($btn_state, "Start Progress Bar")
    EndIf

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

    Case $btn_change
    If $iWait = 10 Then
    $iWait = 250
    Else
    $iWait = 10
    EndIf
    MemoWrite("Timer for _UpdateProgressBar set at: " & $iWait & " milliseconds")
    $iTimerProgress = _Timer_SetTimer($hGUI, $iWait, "", $iTimerProgress) ; reuse timer with different interval
    EndSwitch
    WEnd
    ConsoleWrite("Killed All Timers? " & _Timer_KillAllTimers($hGUI) & @CRLF)
    GUIDelete()
    EndFunc ;==>_Example_CallBack

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

    ; call back function
    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

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

    ; call back function
    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

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

    ; Write a line to the memo control
    Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

    [/autoit]
  • Du glaubst doch nicht dass jemand dein Skript testet we er sieht dass du Registrywerte veränderst ohne sie am Programmende wieder zu restaurieren?

    Mach bitte ein kleines "ungefährliches" Beispiel dann bekommst du eher Hilfe, ich gehe aber davon aus dass es mit AutoIt nicht möglich ist eine GUI während des Verschiebens auch noch zu aktualsieren. Dass es grundsätzlich möglich ist sehe ich z.B. am FireFox der munter weiter lädt trotz verschieben. FF ist aber sicher nicht mt AutoIt programmiert. Hab mich anhand von Make-Grafik 's Beispielskript überzeugen lassen, must du nur richtig umsetzen auf dein Slript,

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (24. September 2012 um 23:08)

  • autobert hast du dir das script überhaupt genau angesehen? die werte werden am ende zurückgesetzt. einfach ganz untern in die ecke drücken und dann dann auf herunterfahren.

  • so hab das jetzt gelöst aber wenn ich mit der maus auf die fenster klicke ignorier ispressed das einfach eine gewissen zeit. muss mindestens 2 sek daraufbleiben das es geht. klicke ich jedoch daneben geht es sofort.