vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik:    |   VB-Versionen: VB.NET03.07.06
System-Ereignisse überwachen (.NET)

Mit Hilfe der SystemEvents-Klasse lassen sich bestimmte Systemereignisse überwachen, so dass die eigene Anwendung entsprechend auf System-Veränderungen reagieren kann.

Autor:  Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  1.548 
http://www.tools4vb.de/System:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt 

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.