Timerfunktion spinnt?

  • Hallo,

    kann mir jemand sagen warum mir mein Script den Browser schliesst wie und wann es will anstatt die vorgegebene Zeit zu beachten? Manchmal passt es zwar, aber häufig ist ihm meine Zeitvorgabe egal?

    [autoit]


    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #Include <Timers.au3>
    $maxIdle_min = IniRead(@ScriptDir & "\test.ini", "Test", "Time", "" )
    $name = IniRead(@ScriptDir & "\test.ini", "Test", "Ap", "" )
    HotKeySet("{ESC}","Kill")
    Global Const $WS_EX_COMPOSITED = 0x02000000
    $gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW, $WS_CLIPCHILDREN), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED))
    GUISetState()
    GUISetState(@SW_MAXIMIZE)
    $GUISize = WinGetPos($gui)
    $eIE = _IECreateEmbedded()
    GUICtrlCreateObj($eIE, $GUISize[0], $GUISize[1], $GUISize[2], $GUISize[3])
    _IENavigate($eIE,IniRead(@ScriptDir & "\test.ini", "Test", "Path", "" ))
    Do
    sleep(200)
    $timer = _Timer_GetIdleTime()
    Until $timer > $maxIdle_min*60*1000
    Kill()
    Func Kill()
    WinActivate($name)
    WinSetState($name, "", @SW_RESTORE)
    Exit
    EndFunc

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

    Hier die dazugehörige INI

    Code
    [Test]
    Ap="NameDerAnwendung"
    Path="www.google.de"
    Time="1"
  • Hi!

    Bei mir funktioniert das Script!
    Wenn ich die Maus nicht bewege, dann schließt das Fenster nach 10 Sekunden. (Ich habe zum Testen die Zeit etwas verkürzt)
    Wenn ich mit der Maus herumfahre dann passiert nichts. Das soll es ja oder!?
    Erst wenn sie wieder zum Stillstand für 10 Sekunden gekommen ist, schließt das Fenster.

    Was soll den nicht funktionieren?

    If not :?: then ?( else :thumbup:

  • ich teste es hier auch immerwieder. aber bei mir geht es nach einigen test nicht und schaltet erst nach 5 oder 7 oder 2 usw. Minuten den Browser ab?!?

  • Hi!

    Hier eine Version von mir wie es dir eventuell zusagt.
    Wahrscheinlich gibt es "schönere" Lösungen.
    Aber sie funktioniert.

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #Include <Timers.au3>
    $maxIdle_min = IniRead(@ScriptDir & "\test.ini", "Test", "Time", "" )
    $name = IniRead(@ScriptDir & "\test.ini", "Test", "Ap", "" )
    HotKeySet("{ESC}","Kill")
    Global Const $WS_EX_COMPOSITED = 0x02000000
    $gui = GUICreate("test",300,300,0,0, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW, $WS_CLIPCHILDREN), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED))
    GUISetState()
    GUISetState(@SW_MAXIMIZE)
    $GUISize = WinGetPos($gui)
    $eIE = _IECreateEmbedded()
    GUICtrlCreateObj($eIE, $GUISize[0], $GUISize[1], $GUISize[2], $GUISize[3])
    _IENavigate($eIE,IniRead(@ScriptDir & "\test.ini", "Test", "Path", "" ))
    dim $begin, $dif
    Do
    If Not WinActive("test") Then
    If Not $begin Then
    $begin = TimerInit()
    $dif = TimerDiff($begin)
    Else
    $dif = TimerDiff($begin)
    EndIf
    Else
    $begin = ""
    EndIf
    sleep(200)
    Until $dif > $maxIdle_min*10*1000
    Kill()
    Func Kill()
    WinActivate($name)
    WinSetState($name, "", @SW_RESTORE)
    Exit
    EndFunc

    [/autoit]

    If not :?: then ?( else :thumbup:

  • Sag mal ePole kann es sein dass du dir dein komplettes Script von anderen Leuten schreiben lässt?
    Und ich sehe nicht einmal dass du dich bemühst überhaupt zu verstehen was dein script macht. Bzw. dass du versuchst einen Fehler selbst auszumerzen. So macht Helfen keinen spaß.

  • Sag mal ePole kann es sein dass du dir dein komplettes Script von anderen Leuten schreiben lässt?
    Und ich sehe nicht einmal dass du dich bemühst überhaupt zu verstehen was dein script macht. Bzw. dass du versuchst einen Fehler selbst auszumerzen. So macht Helfen keinen spaß.

    Stimmt, mir haben Leute geholfen. Habe mich dafuer oeffentlich bedankt und auch kein Geheimnis draus gemacht! Wozu auch, mein Wissen werde ich auch weitergeben!!
    Ich bin dabei zu lernen. So fange ich eben an...

    Und Deine Aufgabe ist jetzt hier welche genau?
    Welchen Sinn macht Dein Post?
    Zwinge ich Dich mir zu helfen?

    Poste doch nicht einfach aus Langeweile wenn Du nichts zu posten hast, danke!
    lg ePole

  • Nur noch nen kleiner tipp über ePole, es gibt links auf der Forumseite einen Kasen mit namen "Info-Links" und da gibt es die komplette AutoIt hilfe auf deutsch übersetzt, sie hat mir sehr viel geholfen

    mfg. Jam00