我正在將應用程序從DirectInput切換到RawInput以進行遊戲手柄處理,並且我想爲每個遊戲手柄提供一個人類可讀的說明。理想情況是設備管理器中出現的設備文本,但USB產品說明也可以。任何方法都應該在沒有管理員權限下工如何爲RawInput HID設備獲取人類可讀的名稱?
到目前爲止,我發現了一個set of clues:在註冊表中似乎有一個文本字段HKLM\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM
,它與DirectInput提供的名稱相同。這並不完美 - 我在設備管理器中以英文顯示遊戲手柄,但在註冊表中列爲氀。
有沒有辦法從WM_INPUT
提供的HANDLE到設備管理器描述? HidD_GetProductString
看起來很有希望,但我不知道如何從RawInput句柄獲取Hid頂級集合句柄。
編輯:我有一個設備實例路徑(例如\\?\HID#VID_1267&PID_A001#8&1d630df6&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
,這可能足以提取我從SETUPAPI需要的信息是否有人知道如何達到這個給定一個實例路徑