vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
ermitteln welches USB Gerät entfernt wurde 
Autor: agemsa
Datum: 07.10.04 17:06

Hi,

ich habe ein Programm welches sich erfolgreich mit einem USB Gerät verbindet und arbeitet. Ich habe aber schwierigkeiten das Gerät zu ermitteln welches vom USB abgezogen wurde.

Ich werte zunächst über einen Hook aus ob WM_ONDEVICECHANGE auftritt. Ist dieses der Fall prüfe ich ob es dabei um weiterhin um den EventType DBT_DEVICEREMOVECOMPLETE handelt. Jetzt kann weiß ich das ein Gerät entfernt wurde.

Wie kriege ich jetzt aber heraus welches Gerät entfernt wurde???????????????????

Ich habe versucht über MoveMemory den Inhalt aus dem Speicher (Adresse erhalte ich ja über die WM) in die Struktur _DEV_BROADCAST_INTERFACE zu kopieren (denn da steht der DeviceName drinne) aber ohne Erfolg.

hier der Code

Const GWL_WNDPROC = (-4&)
 
Type GUID
  Data(3) As Byte
End Type
 
Type DEV_BROADCAST_DEVICEINTERFACE
  dbcc_size As Long
  dbcc_devicetype As Long
  dbcc_reserved As Long
  dbcc_classguid As GUID
  dbcc_name As String
End Type
 
Dim PrevWndProc&
 
Public Sub RegisterHook(hWnd As Long)
  PrevWndProc = SetWindowLong(hWnd, GWL_WNDPROC, _
                              AddressOf SubWndProc)
End Sub
 
Public Sub DestroyHook(hWnd As Long)
  Call SetWindowLong(hWnd, GWL_WNDPROC, PrevWndProc)
End Sub
 
Private Function SubWndProc(ByVal hWnd As Long, _
                            ByVal Msg As Long, _
                            ByVal wParam As Long, _
                            ByVal lParam As Long) As Long
 
  On Error Resume Next
 
  Debug.Print CStr(Msg)
 
  If Msg = 537 And wParam = 32772 And _
    frmTristanMonitor.mySpectrometer1.ConnectionType = USB Then
 
    Dim size As Long
    MoveMemory size, lParam, 4 
    Dim dev_Inf As DEV_BROADCAST_DEVICEINTERFACE
     dev_Inf.dbcc_name = Space(size-15)
    MoveMemory dev_Inf, lParam, size
 
  End If
 
End Function
Kann mir jemand weiter helfen?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ermitteln welches USB Gerät entfernt wurde717agemsa07.10.04 17:06

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel