Donnerstag, 15. März 2012

Anschluss von Geräten / Wechseldatenträgern erkennen

Im vorigen Post habe ich Grundlegendes zur Funktion WndProc() erklärt.
In diesem Post möchte ich zeigen, wie man diese Funktion dazu benutzen kann, zu erkennen, wenn sich Geräteeinstellungen geändert haben, also z.B. neue Hardware angeschlossen wurde, wie Mäuse, USB - Sticks, oder eine CD eingelegt wurde.
Ändert sich eine Geräteeinstellung, schickt das Betriebssystem unserer C# Anwendung die Nachricht WM_DEVICECHANGE (hexadezimal den Wert 219).

Folgender Code gibt eine Nachricht aus, falls obiger Fall eintritt:

const int WM_DEVICECHANGE = 0x219;
protected override void WndProc(ref Message m)
{
    if (m.Msg == WM_DEVICECHANGE)
        MessageBox.Show("Geräteeinstellungen geändert.");
    base.WndProc(ref m);
}

Im nächsten Post wird gezeigt, wie man explizit erkennt, ob ein USB - Stick angeschlossen wurde, in diesem Post, ob eine CD eingelegt wurde.

Kommentare:

  1. const int WM_DEVICECHANGE = 0x219;
    protected override void WndProc(ref Message m)
    {
    int WM_DEVICECHANGE = 0x219;
    if (m.Msg == WM_DEVICECHANGE)
    [...]

    Wieso WM_DEVICECHANGE = 0x219 2x definieren (Einmal als Konstante und einmal als lokale Variable in der Methode)?

    AntwortenLöschen
  2. Hi eudaimonie,
    danke für den Hinweis, das 2malige Definieren war natürlich Quatsch.
    Grüße
    Oliver

    AntwortenLöschen