Entwickler-Ecke
Sonstiges (.NET) - USB HID (Human Interface Device) mit C# und WPF
ebber - Mo 04.08.08 18:39
Titel: USB HID (Human Interface Device) mit C# und WPF
Hallo,
ich habe so ziemlich überall gesucht, aber ich konnte nicht wirklich was zu C# und HID finden. Kann mir jemand einen Ansatz geben wo es ein Beispiel dazu gibt, oder bin ich nur mal wieder blind?
MfG
Christian S. - Mo 04.08.08 18:43
Was willst Du den überhaupt machen? :gruebel: Im Moment liest sich die Frage wie "Hat einer ein Bespiel für Maus mit C#?" :nixweiss:
ebber - Mo 04.08.08 18:54
Ich suche sowas wie eine Klasse für HID. Sowas wie TJvHidDeviceController für Delphi falls dir das was sagt.
MfG
ebber - Mi 06.08.08 17:45
...Also anscheinend nicht. Ich hätte wohl nicht so faul sein sollen und noch 2 Sätze mehr schreiben. :oops:
Das Ding soll dann eben Events haben die ausgeführt werden wenn z.B. ein HID Device eingesteckt/herausgezogen wird oder wenn Daten von einem ankommen. Und Funktionen mit denen ich Daten zu einem HID device senden kann usw.
MfG
Christian S. - Mi 06.08.08 22:07
Der naheliegende Suchstring gibt bei Google einige Ergebnisse, die gut aussehen, mehr weiß ich zu dem Thema auch nicht :nixweiss:
C# HID
ebber - Do 07.08.08 13:18
Hallo,
ich habe mich noch einmal ein bisschen umgeschaut. Dieses hat mir von dem sehr sehr sehr wenigen am besten gefallen:
http://www.codeproject.com/script/Articles/Article.aspx?aid=18099
Ich habe es getestet, funktioniert im Prinzip, nur nicht mit WPF. Es scheint mir ein bisschen verzwickt, es funktioniert mit lauter Handles und so zeug wofür man eine WinForm haben sollte.
Und wenn es nicht mit WPF geht, dann kann ich auch das im Prinzip schon vorhandene Programm in Delphi lassen.
Wenn noch jemand was zu dem Thema findet wäre ich sehr dankbar.
MfG
PS: Dieser Thread ist schon auf Rang 3 bei Google suche nach "C# HID".
// Edit: Schreibfehler
Christian S. - Do 07.08.08 13:47
ebber hat folgendes geschrieben: |
Ich habe es getestet, funktioniert im Prinzip, nur nicht mit WPF. Es scheint mir ein bisschen verzwickt, es funktioniert mit lauter Handles und so zeug wofür man eine WinForm haben sollte. |
new System.Windows.Interop.WindowInteropHelper(someWindow).Handle ;-)
ebber - Do 07.08.08 14:33
Danke nochmals.
Ich könnte hier vielleicht kurz darauf verweisen
http://www.c-sharp-forum.de/viewtopic.php?t=81967.
Ich habe auch ein wenig rumprobiert aber das
, wovon es leider sehr viel gibt macht mir die Probleme.
z.B.
C#-Quelltext
1:
| protected override void WndProc(ref Message m) |
ich habe bei msdn das gefunden
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| protected virtual IntPtr WndProc( IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled ) |
Bin mir aber auch nicht so sicher ob das was damit zu tun hat und wie es funktioniert.
MfG
v2afrank - Do 11.09.08 12:21
Bist Du eigentlich schon weiter gekommen ?
Ich bin auch auf der Suche nach so etwas allerdings für das Compact Framework
ebber - Sa 20.09.08 19:35
Hallo,
ich habe dann nicht mehr weiter gesucht. Ich habe das dann mit Delphi gemacht. Falls du was findest würde mich das aber auch interessieren, dann könnte ich meinem Programm mit Expression ein bisschen Design verpassen.
MfG
ebber - Mo 12.01.09 11:31
Ich habe mich gerade noch mal zu dem Thema umgeschaut und herausgefunden, dass es eigentlich ganz einfach ist.
Man nehme diese "USB HID Component for C#":
http://www.codeproject.com/KB/cs/USB_HID.aspx
Um das ganze dann noch in WPF benutzen zu können, benötigt man folgenden Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| IntPtr handle; UsbHidPort usb = new UsbHidPort();
protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e);
WindowInteropHelper helper = new WindowInteropHelper(this); handle = helper.Handle; HwndSource source = HwndSource.FromHwnd(handle);
source.AddHook(WindowProc); }
private IntPtr WindowProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { System.Windows.Forms.Message ms = new System.Windows.Forms.Message(); ms.HWnd = hwnd; ms.LParam = lParam; ms.Msg = msg; ms.WParam = wParam;
usb.ParseMessages(ref ms);
return IntPtr.Zero; }
private void Window_Loaded(object sender, RoutedEventArgs e) { usb.RegisterHandle(handle); } |
Damit kann ich das ganze ganz normal in WPF benutzen.
MfG
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!