vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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

VB.NET - Fortgeschrittene
da gibts noch ne andere lösung 
Autor: Urot
Datum: 23.03.05 03:41

windowsmessages abfangen viel mehr info ;) falls nachgebaut werden will bitte konstanten nachschlagen

 
lass DeviceWatcher

<DllImport("user32.DLL", SetLastError:=True)> Private Shared Function RegisterDeviceNotification(ByVal IntPtr As IntPtr, ByVal NotificationFilter As IntPtr, ByVal Flags As Int32) As IntPtr
End Function

<DllImport("hid.dll")> Private Shared Sub HidD_GetHidGuid _
(ByRef HidGuid As System.Guid)
End Sub

<DllImport("kernel32.DLL")> Private Shared Function _
GetLastError() As Integer
End Function

<DllImport("user32.DLL", SetLastError:=True)> Private Shared Function UnregisterDeviceNotification(ByRef Handle As IntPtr) As IntPtr
End Function

Private Class InternalWindow
Inherits NativeWindow

Public Event MessageReceived(ByVal m As Message)

Public Sub New()
MyBase.New()
End Sub

Private _handle As IntPtr
ReadOnly Property RegisterDeviceNotificationHandle() As IntPtr
Get
Return _handle
End Get
End Property

Sub UnregisterHidNotification()
Dim ret As IntPtr = UnregisterDeviceNotification(RegisterDeviceNotificationHandle)
If ret.ToInt32 = 0 Then
' error
Debug.WriteLine("Error: " & GetLastError.ToString)
End If
_handle = IntPtr.Zero
End Sub


' um über alle Hid änderungen informiert zu werden
Sub RegisterHidNotification()
Dim dbi As New DEV_BROADCAST_DEVICEINTERFACE
Dim size As Integer
size = Marshal.SizeOf(dbi)
dbi.dbcc_size = size
dbi.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE
dbi.dbcc_reserved = 0
HidD_GetHidGuid(dbi.dbcc_classguid) 'obtained with HidD_GetHidGuid()
dbi.dbcc_name = 0
Dim buffer As IntPtr = Marshal.AllocHGlobal(size)
Marshal.StructureToPtr(dbi, buffer, True)
Dim r As IntPtr
r = RegisterDeviceNotification(Me.Handle, buffer, DEVICE_NOTIFY_WINDOW_HANDLE)
If r.ToInt32 = IntPtr.Zero.ToInt32 Then
Debug.WriteLine("Error: " & GetLastError.ToString)
Else
_handle = r
Debug.WriteLine(r.ToInt32)
End If
End Sub 'RegisterHidNotification '

Protected Overrides Sub WndProc(ByRef m As Message)
MyBase.WndProc(m)
If m.Msg = WM_DEVICECHANGE Then
RaiseEvent MessageReceived(m)
End If
End Sub

End Class

Private Sub onMessageReceived(ByVal m As System.Windows.Forms.Message) Handles iWindow.MessageReceived
msgbox("juhu")
End Sub

Public Event Action(ByVal e As DeviceEventArgs)

Private WithEvents iWindow As New InternalWindow
Private _Enabled As Boolean

ReadOnly Property Enabled() As Boolean
Get
Return _Enabled
End Get
End Property

End Class



ahoi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wechseldatenträger Event ?1.072Urot19.03.05 19:31
Re: Wechseldatenträger Event ?852Urot20.03.05 22:24
Re: Wechseldatenträger Event ?776Urot22.03.05 15:49
Re: Wechseldatenträger Event ?824Supernova22.03.05 16:05
Re: Wechseldatenträger Event ?798Supernova22.03.05 16:50
Re: Wechseldatenträger Event ?769Supernova22.03.05 20:02
da gibts noch ne andere lösung882Urot23.03.05 03:41
fast vergessn806Urot23.03.05 03:44

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