ゲームパッドの処理のために、アプリケーションを DirectInput から RawInput に切り替えています。各ゲームパッドについて、人間が読める説明を表示したいと考えています。理想はデバイス マネージャーに表示されるデバイス テキストですが、USB 製品の説明でも構いません。どの方法でも、管理者の許可がなくても機能するはずです。
これまでのところ、1 つの手がかりHKLM\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM
を見つけました。レジストリに、DirectInput によって提供された名前と同じテキスト フィールドがあるようです。これは完璧ではありません。デバイス マネージャーに英語で表示されるゲームパッドがありますが、レジストリには「氀」と表示されます。
によって提供される HANDLE からWM_INPUT
デバイス マネージャーの説明を取得する方法はありますか? HidD_GetProductString
有望に見えますが、RawInput ハンドルから Hid トップレベル コレクション ハンドルを取得する方法がわかりません。
編集: デバイス インスタンス パスを取得しました (たとえば\\?\HID#VID_1267&PID_A001#8&1d630df6&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
、SetupAPI から必要な情報を抽出するのに十分な場合があります。インスタンス パスを指定してこれに到達する方法を知っている人はいますか?