automatisch Tastenkombination nach 5 minuten ohne Eingabe möglich ?

  • würde gerne ein in einem Programm ein "logout" mittels Tastenkombination ( Strg + b ) nach 5 minuten ohne Eingabe automatisch durch ein AutoIT script erzwingen.

    hab schon etwas gestöbert aber richtig fündig geworden bin ich nicht.

    Geht sowas - irgendweche empfehlenswerte Beispielscripte wo Timeout über Tastatur / Maus gesteuert wird ?

    danke maxl

    Einmal editiert, zuletzt von maxl (2. Oktober 2009 um 09:57)

  • Hallo maxl,

    zum ersten Teil siehe:

    [autoit]

    #include <Timers.au3>
    ;http://www.autoit.de/index.php?page…1279#post101279 Eukalyptus
    Global $iTimer

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

    While 1
    $iTimer = _Timer_GetIdleTime()
    Select
    Case $iTimer < 5000
    ToolTip("Mache nichts!" & @LF & "Keine Eingabe seit " & Round($iTimer / 1000) & " Sekunden")
    Case Else
    ToolTip("5 Sekunden überschritten.." & @LF & "Keine Eingabe seit " & Round($iTimer / 1000) & " Sekunden")
    EndSelect
    Sleep(500)
    WEnd

    [/autoit]

    zum 2. Teil schau dir die Funktion shutdown in der Hilfe an,

    mfg (Auto)Bert

  • ok, jetzt funktionier mein Script mal :)

    edit: fertiges script siehe unten

    Danke nochmal

    schön wäre wenn ich vor dem senden der Tastenkombination auf den richtigen Task wechseln könnte falls dieser nicht aktiv ist

    edit: ui, 50%cpu last (auf einem 2Ghz dualcore) durch das compilierte script hätt ich nicht erwartet - naja was solls es erfüllt den Zweck

    2 Mal editiert, zuletzt von maxl (2. Oktober 2009 um 10:52)

  • bau mal in die While-Schleife noch ein Sleep(100) ein, sollte deine CPU etwas schonen

    lg ahnungslos

    dank, das hat gewirkt - ist ja auch im Beispiel oben enthalten :) Last ist nun unter 1%


  • Beende den Process nicht mit Send-Befehl (immer eine unschöne Sache), sondern kill ihn. :D
    ProcessClose ( "process")

    ich will den Prozess nicht beenden oder gar killen - sondern nur in diesem Proramm ein Logout erzwingen - weil dann kann man in diesem programm nach eingabe des Logins da weiterarbeiten wo man vor dem Logout war ;)

  • so, gelöst :) mit WinActivate kann ich mir das gewünschte Programmfenster in den Vordergrund holen - und es genügt das erste Wort im Fensternamen

    [autoit]

    #include <Timers.au3>
    ;http://www.autoit.de/index.php?page…1279#post101279 Eukalyptus
    Global $iTimer

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

    ; Run Koram
    Run("K:\Koram\Utilities\Client\Win32\OMNIS7.exe hk_prog.lbr" , "K:\koram", @SW_MAXIMIZE )
    ; Logout Timeout 600 Sekunden
    While ProcessExists("omnis7.exe")
    $iTimer = _Timer_GetIdleTime()
    if $iTimer > 600000 then WinActivate("Kplus")
    if $iTimer > 600300 then send("^b")
    Sleep(200)
    WEnd

    [/autoit]

    2 Mal editiert, zuletzt von maxl (2. Oktober 2009 um 10:53)