Wie bekomme ich einen lesbaren Namen für RawInput HID Gerät?

9

Ich wechsle eine Anwendung von DirectInput zu RawInput für Gamepad-Handhabung, und ich würde gerne eine lesbare Beschreibung für jedes Gamepad präsentieren. Ideal wäre der Gerätetext, der im Gerätemanager angezeigt wird, aber auch die USB-Produktbeschreibung. Jede Methode sollte ohne Administratorrechte funktionieren.

Bisher habe ich eine gefunden Satz von Hinweisen : Es scheint ein Textfeld in der Registrierung unter HKLM\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM zu geben, das mit dem von DirectInput angegebenen Namen übereinstimmt. Das ist nicht perfekt - ich habe ein Gamepad, das im Gerätemanager auf Englisch erscheint, aber in der Registrierung als 氀 aufgeführt ist.

Gibt es eine Möglichkeit, von dem von WM_INPUT bereitgestellten HANDLE zur Beschreibung des Gerätemanagers zu gelangen? HidD_GetProductString sieht vielversprechend aus, aber ich Ich weiß nicht, wie Sie das Hid-Handle für die oberste Ebene der Sammlung aus dem RawInput-Handle abrufen können.

Edit: Ich habe einen Device-Instanz-Pfad (zB \?\HID#VID_1267&PID_A001#8&1d630df6&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} , was ausreichen kann, um die benötigten Informationen aus der SetupAPI zu extrahieren. Weiß jemand, wie man dies bei einem Instanzpfad erreicht?

    
Adrian Cox 29.09.2012, 20:29
quelle

2 Antworten

2

Ich habe ein ähnliches Problem und glaube, dass ich eine mögliche Lösung gefunden habe.

Offenbar müssen Sie CreateFile mit dem Namen aufrufen, den RawInput von GetRawInputDeviceInfo mit RIDI_DEVICENAME als Argument uiCommand liefert. Dadurch erhalten Sie ein Handle für das Gerät, mit dem Sie HidD_GetProductString aufrufen können.

%Vor%

Es scheint jedoch, dass HidD_GetProductString auf den meisten Geräten, die an meinem System angeschlossen sind, fehlschlägt und nur für meine USB-Tastatur und eine Webkamera erfolgreich zu sein scheint. Das gelingt meiner USB-Maus nicht. Ich habe noch nicht herausgefunden, warum das so ist, aber vielleicht wird mein Fortschritt Ihnen helfen.

    
Sion Sheevok 18.11.2012 22:18
quelle
0

Sie erhalten ein Handle für die Sammlung auf oberster Ebene, wie hier erklärt: Ссылка

    
Shaul 01.06.2015 17:17
quelle

Tags und Links