Automatischer "Logout"
20.11.2014 09:32:41
Marcus
ich habe mir das folgende Makro zusammen gebastelt, dass dafür sorgen soll, dass nach einer definierten Zeit ab dem letzten Klicken oder Tippen etwas passiert.
Private Type LASTINPUTINFO
cbSize As Long
dwTime As Long
End Type
Private Declare PtrSafe Sub GetLastInputInfo Lib "user32" (ByRef plii As LASTINPUTINFO)
Private Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long
'Logout nach X Minuten
Function IdleTime() As Single
Dim a As LASTINPUTINFO
a.cbSize = LenB(a)
GetLastInputInfo a
IdleTime = (GetTickCount - a.dwTime) / 1000
End Function
Sub Idle_Timer()
Application.OnTime Now + TimeSerial(0, 1, 0), "Logout"
End Sub
Sub Idle_Timer2()
Application.OnTime Now + TimeSerial(0, 1, 0), "Logout"
End Sub
Sub Logout()
ActiveWorkbook.Unprotect Passwort_Admin
Worksheets("Datenbasis").Visible = xlVeryHidden
Worksheets("Normalschicht").Visible = xlVeryHidden
Worksheets("Schicht1").Visible = xlVeryHidden
Worksheets("Schicht2").Visible = xlVeryHidden
Worksheets("Schicht3").Visible = xlVeryHidden
Worksheets("Abteilungsleiter").Visible = xlVeryHidden
Worksheets("Anleitung").Visible = xlVeryHidden
Sheets("Startseite").Range("A1").Select
Application.CommandBars("Ply").Enabled = False
ActiveWorkbook.Protect Passwort_Admin, Structure:=True
Call Idle_Timer2
End Sub
Sub Logout2()
ActiveWorkbook.Unprotect Passwort_Admin
Worksheets("Datenbasis").Visible = xlVeryHidden
Worksheets("Normalschicht").Visible = xlVeryHidden
Worksheets("Schicht1").Visible = xlVeryHidden
Worksheets("Schicht2").Visible = xlVeryHidden
Worksheets("Schicht3").Visible = xlVeryHidden
Worksheets("Abteilungsleiter").Visible = xlVeryHidden
Worksheets("Anleitung").Visible = xlVeryHidden
Sheets("Startseite").Range("A1").Select
Application.CommandBars("Ply").Enabled = False
ActiveWorkbook.Protect Passwort_Admin, Structure:=True
Call Idle_Timer
End Sub
Das Ganze funktioniert soweit auch ganz gut, jedoch wird die 1 Minute nicht richtig eingehalten.Die Ausführung passiert jeweils bereits nach ~44 Sekunden.
Kann mir das jemand erklären?
Danke im Voraus
Marcus