Automatischer Logout

Marcel G

Mitglied
Hallo,

ich versuche einen Timer zu programmieren, der automatisch nach einer gewissen Zeit, bei der der Benutzer nichts macht, eine Aktion ausführt (z.B. wie ein Logout). Timer ist soweit kein Problem, aber ich weiß nicht wie ich sämtliche Benutzeraktionen innerhalb des Hauptfensters abfangen kann.
Hat da jemand eine Idee wie man das machen kann, oder hat das selbst schon einmal gemacht?

Vielen Dank
 

DrSoong

Iss was, Doc!
Wäre es hier nicht am einfachsten, das ganze als Bildschirmschoner zu integrieren? So sparst du dir die ganze Abfragerei betr Aktivität, das System ruft dir dein Programm auf und du brauchst nur mehr den Logoff durchzuführen.


Der Doc!
 

Marcel G

Mitglied
Hier noch kurz die Lösung mit VB .NET

Code:
    <DllImport("user32.dll")> _
        Shared Function GetLastInputInfo(ByRef plii As LASTINPUTINFO) As Integer
    End Function

    Dim idletime As Integer
    Dim lastInputInf As New LASTINPUTINFO()

    <StructLayout(LayoutKind.Sequential)> _
        Structure LASTINPUTINFO
        <MarshalAs(UnmanagedType.U4)> Public cbSize As Integer
        <MarshalAs(UnmanagedType.U4)> Public dwTime As Integer
    End Structure

    Public Function GetLastInputTime() As Integer
        idletime = 0
        lastInputInf.cbSize = Marshal.SizeOf(lastInputInf)
        lastInputInf.dwTime = 0

        If GetLastInputInfo(lastInputInf) Then
            idletime = Environment.TickCount - lastInputInf.dwTime
        End If

        If idletime > 0 Then
            Return idletime / 1000
        Else : Return 0
        End If
    End Function