VC 識別USB HID裝置

2021-07-29 09:56:44 字數 1338 閱讀 3002

遇到問題:和論壇中一樣,不過前輩是2023年遇到的。。。

有乙個usb裝置,在裝置管理器中顯示為乙個磁碟驅動器,但是它是沒有碟符的, 在ondevicechange中,當這個裝置插入或者拔插的時候產生多個dbt_devnodes_changed, 而dbt_devicearrival, dbt_deviceremovecomplete之類的卻截獲不到,如何才能截獲到dbt_devicearrival, dbt_deviceremovecomplete?(u盤之類的usb裝置可以截獲的到)

解決**如下:

#include #include #include #include #include guid hidclassguid = };

void registerfordevicenotifications(hwnd m_hwnd)

lresult callback wndproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

break;

default:

; }

return defwindowproc(hwnd, umsg, wparam, lparam);

}

int main(int argc, char *argv)

; wndcls.hbrbackground = (hbrush)getstockobject(white_brush);

wndcls.hcursor = (hcursor)loadcursor(null, idc_arrow);

wndcls.lpfnwndproc = wndproc;

wndcls.lpszclassname = szclassname;

if(!registerclass(&wndcls))

cw_usedefault, cw_usedefault, cw_usedefault, null, null, null, null);

if(null == hwnd)

showwindow(hwnd, sw_hide);

updatewindow(hwnd);

registerfordevicenotifications(hwnd);

msg msg;

while(getmessage(&msg, null, null, null))

return 0;

}

如題主要是新增了:將usb裝置用

registerfordevicenotifications(hwnd);//進行註冊。

Qt 呼叫USB HID裝置讀寫

順便說一下,讀者在放好上面幾個檔案並操作完下面前三個步驟後再編譯一次,如果編譯正常通過並沒有報錯閃退,那就恭喜你,可以略過這一部分繼續測試後面的操作。由於我自己在做的時候始終會出現程式異常結束的提示,最後發現系統缺少乙個庫msvcr100d.dll,到網上找了乙個放到系統下就正常了,如果讀者在測試的...

C 訪問USB HID 裝置方法二

依次使用一下函式 1 static public extern void hidd gethidguid ref system.guid hidguid 獲取hid的全域性guid 2 static public extern intptr setupdigetclassdevs ref syste...

STM32 USB HID裝置驅動分析

stm32 usb hid裝置驅動分析 daniellee 2014 9 29 一 usb hid的裝置描述符分析 usb hid的裝置描述符用以下結構定義 device property device prop device property 這是裝載了多個函式指標的結構體,用於統一管理usb的多...