USB-Verbindung erkennen

  • VB.NET

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    nein, die zweite Bedingung muss weg. Die tritt nur bei UsbSticks ein, nicht bei Tastaturen.

    Und dass mehrfach dasselbe gemeldet wird, ist halt so.
    Was du interessehalber machen kannst ist:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Const WM_DEVICECHANGE As Integer = &H219
    3. Private Const DBT_DEVNODES_CHANGED As Integer = 7
    4. Protected Overloads Overrides Sub WndProc(ByRef msg As Message)
    5. MyBase.WndProc(msg)
    6. If msg.Msg = WM_DEVICECHANGE Then
    7. Debug.Print(msg.ToString)
    8. End If
    9. End Sub
    Das gibt dir ins Ausgabefenster aus, wleche Messages mit welchen Parametern zu welchem Zeitpunkt auftreten.
    Ausgabefenster kennste?

    ErfinderDesRades schrieb:

    Das gibt dir ins Ausgabefenster aus, wleche Messages zu welchem Zeitpunkt auftreten.
    Ausgabefenster kennste?

    Das gibt er mir aus:
    Spoiler anzeigen
    msg=0x219 (WM_DEVICECHANGE) hwnd=0x1c03f0 wparam=0x7 lparam=0x0 result=0x1
    msg=0x219 (WM_DEVICECHANGE) hwnd=0x1c03f0 wparam=0x7 lparam=0x0 result=0x1
    msg=0x219 (WM_DEVICECHANGE) hwnd=0x1c03f0 wparam=0x7 lparam=0x0 result=0x1
    msg=0x219 (WM_DEVICECHANGE) hwnd=0x1c03f0 wparam=0x7 lparam=0x0 result=0x1
    msg=0x219 (WM_DEVICECHANGE) hwnd=0x1c03f0 wparam=0x8000 lparam=0x577e530 result=0x1
    msg=0x219 (WM_DEVICECHANGE) hwnd=0x1c03f0 wparam=0x7 lparam=0x0 result=0x1
    msg=0x219 (WM_DEVICECHANGE) hwnd=0x1c03f0 wparam=0x7 lparam=0x0 result=0x1

    Das komische ist, dass die MsgBox beim USB-Stick 2 mal, manchmal sogar 3 mal kommt, bei der Maus/Tastatur aber wirklich nur einmal.
    auf die Messagebox kannste nun doch verzichten, mittm Ausgabefenster debugt sich doch viel angenehmer.

    RIPENCE schrieb:

    beim USB-Stick 2 mal, manchmal sogar 3 mal kommt, bei der Maus/Tastatur aber wirklich nur einmal.
    Dieser abweichende Wparam: tritt der
    a beim reinstecken
    b beim rausziehen
    c bei Tastatur
    d bei UsbStick

    auf?

    ErfinderDesRades schrieb:

    auf die Messagebox kannste nun doch verzichten, mittm Ausgabefenster debugt sich doch viel angenehmer.

    RIPENCE schrieb:

    beim USB-Stick 2 mal, manchmal sogar 3 mal kommt, bei der Maus/Tastatur aber wirklich nur einmal.
    Dieser abweichende Wparam: tritt der
    a beim reinstecken
    b beim rausziehen
    c bei Tastatur
    d bei UsbStick

    auf?


    Ich habe die MsgBox nur zum testen benutzt. Was ich eigentlich brauche ist der Systemlautsprecher. Also der Buzzer im Computer, der auf'm Mainboard aufgebaut ist. Dieser muss angesprochen werden, dass er piept. Weißt Du zufällig auch, wie das geht?
    Beim rausziehen eines USB-Sticks taucht er 3x auf. Beim reinstecken 6x. Beim rausziehen der Tastatur taucht er 2x auf und beim rausziehen 7x.
    Also X Zeilen wie oben mit dem msg=0x219[...]

    ErfinderDesRades schrieb:

    RIPENCE schrieb:

    Also X Zeilen wie oben mit dem msg=0x219

    Klaro - ich frag nach dem
    abweichendem WParam
    , und du antwortest, wann immer 0x219-msg kommt (logischerweise immer, denn die If-Abfrage filtert ja darauf).

    Also beim rausstecken eines USB-Sticks kommen 4 Meldungen mit wparam=0x7 und eine einzige mit wparam=0x8000. Beim ausstecken kamen 3 Zeilen mit wparam=0x7 und eine mit wparam=0x8004.
    Bei der Maus hingegen kommen zwei Meldungen beim einstecken und vier beim ausstecken - immer nur wparam=0x7; bei der Tastatur das selbe.

    ErfinderDesRades schrieb:

    tja, blöd - da kann man einen Tastatur-Anschluss nicht eindeutig identifizieren.
    Aber ruf doch einfach jedesmal Console.Beep auf - Ohren merken das vlt. nicht so genau.


    Dann kann man aber eine Maus auch nicht richtig identifizieren? Die Tastatur gibt das gleiche aus wie die Maus.
    Okay, Dankeschön :)!

    Könntest Du mir hier kurz eine Antwort geben?
    Systemlautsprecher ansprechen?
    Jap, bin mir aber nicht sicher, ob das über den Systemlautsprecher geht. Habe nämlich meinen beim PC-Zusammenbau extra raus gelassen, da ich ihn eigentlich nicht benötige.
    Habe aber mal die Möglichkeit genommen, die @Gather bei meinem Post vorgeschlagen hat. Bin mir eigentlich relativ sicher, dass die Computer in der Schule diesen Lautsprecher eingebaut haben, da sie älter sind (Intel Atom Prozessor).

    Trotzdem vielen Dank an Euch alle! Habe das Programm nun endlich fertig bekommen und bekomme meine (vollverdiente) 1 in Informatik. :p