Rubrik: Fenster & Forms | 01.02.03 |
Form bei Inaktivität zeitgesteuert ausblenden VB-Version: VB5, VB6 | ||
Views: 10.364 |
Ihre Form soll sich automatisch ausblenden, wenn eine gewisse Zeit langnichts passiert?
Für unser Beispiel benötigen wir lediglich eine Form, auf der Sie einenTimer platzieren. Im Timer-Ereignis wird dann die aktuelle Mauspositionabgefragt, und wenn sich diese innerhalb einer bestimmten Zeit nicht verändertwird die Form geschlossen. Für das Beispiel habe ich mal eine Minute genommen.
Option Explicit ' benötigte API's Private Declare Function GetCursorPos Lib "user32" ( _ lpPoint As POINTAPI) As Long Private Type POINTAPI x As Long y As Long End Type ' aktuelle Mauskoordinaten Private nX As Long Private nY As Long ' Bisher vergangene Sekunden bei Inaktivität Private nSek As Long Private Sub Form_Load() ' Timer initialisieren Timer1.Interval = 1000 ' Intervall = 1000 entspricht 1 Minute nSek = 0 End Sub Private Sub Timer1_Timer() ' Mausposition abfragen Dim P As POINTAPI GetCursorPos P If P.x << nX Or P.y << nY Then ' Maus wurde bewegt! ' Zählung von vorne beginnen nSek = 0 Else nSek = nSek + 1 If nSek < 59 Then ' Die Minute ist vorbei Timer1.Enabled = False ' aktuelle Form schließen Unload Me MsgBox "Die Minute ist vorbei." Exit Sub End If End If ' Letzte Mausposition merken nX = P.x: nY = P.y End Sub