Mit Hilfe der SystemEvents-Klasse lassen sich bestimmte Systemereignisse überwachen, so dass die eigene Anwendung entsprechend auf System-Veränderungen reagieren kann. So kann die eigene Anwendung bspw. autom. benachrichtigt werden, wenn die Bildschirmeinstellung verändert wurde oder der Anwender das Datum/die Uhrzeit verändert hat. Um die Systemereignisse zu überwachen muss die Klasse "Microsoft.Win32" importiert werden: Imports Microsoft.Win32 Public Class Form1 Inherits System.Windows.Forms.Form Für jedes zu überwachende Ereignis fügen wir eine entsprechende Benachrichtigungsprozedur in unsere Anwendung ein: Private Sub DisplayChanged(ByVal sender As Object, ByVal e As EventArgs) MsgBox("Achtung!" & vbCrLf & "Bildschirmeinstellungen wurden verändert!") End Sub Private Sub TimeChanged(ByVal sender As Object, ByVal e As EventArgs) MsgBox("Achtung!" & vbCrLf & "Datum/Zeit wurde verändert!") End Sub Private Sub LowMemory(ByVal sender As Object, ByVal e As EventArgs) MsgBox("Achtung!" & vbCrLf & "Nur noch wenig Arbeitsspeicher verfügbar!") End Sub Jetzt müssen wir diese Prozeduren nur noch via AddHandler-Aufruf mit den System-Ereignissen "verbinden": Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Systemereignisse abfangen: ' DisplayChanged-Prozedur aufrufen, wenn die Bildschirmeinstellungen geändert wurden AddHandler SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged ' TimeChanged-Prozedur aufrufen, wenn Datum/Zeit verändert wurden AddHandler SystemEvents.TimeChanged, AddressOf TimeChanged ' LowMemory-Prozedur aufrufen, wenn wenig Arbeitsspeicher zur Verfügung steht AddHandler SystemEvents.LowMemory, AddressOf LowMemory End Sub Beim Schließen der Anwendung schalten wir die Ereignisüberwachung wie folgt ab: Private Sub Form1_Closing(ByVal sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing ' Ereignisüberwachung wieder ausschalten RemoveHandler SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged RemoveHandler SystemEvents.TimeChanged, AddressOf TimeChanged RemoveHandler SystemEvents.LowMemory, AddressOf LowMemory End Sub Ein Blick auf die SystemEvents.-Auflistung zeigt, dass sich hier noch einige andere interessante Systemereignisse überwachen lassen. |