C 監控USB裝置

2021-06-18 06:34:17 字數 1811 閱讀 4505

程式稍微修改便能用作一般性的處理,目前實現的功能類似於監控windows usb裝置的插拔操作。

可以直接注釋掉cstring的使用後使用 cl /ehsc /w4 /zi 編譯,或貼上到任意的vs中做編譯。

#include

#include

#include

#include

#include

#include // cstring

using namespace std;

#pragma comment (lib, "kernel32.lib")

#pragma comment (lib, "user32.lib")

#define thrd_message_exit wm_user + 1

const _tchar class_name  = _t("sample window class");

hwnd hwnd;

static const guid guid_devinte***ce_list =

},// guid_devinte***ce_disk

},// guid_devinte***ce_hid,

},// guid_ndis_lan_class

}guid_devinte***ce_comport

// },

guid_devinte***ce_serenum_bus_enumerator

// },

guid_devinte***ce_parallel

// },

guid_devinte***ce_parclass

// }

};void updatedevice(pdev_broadcast_deviceinte***ce pdevinf, wparam wparam)

lresult devicechange(uint message, wparam wparam, lparam lparam)

}return 0;

}lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)

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

}atom myregisterclass()

;wc.lpfnwndproc   = wndproc;

wc.hinstance     = getmodulehandle(null);

wc.lpszclassname = class_name;

return registerclass(&wc);

}bool createmessageonlywindow()

void registerdevicenotify()

}dword winapi thrdfunc( lpvoid lpparam )

translatemessage(&msg);

dispatchmessage(&msg);

}return 0;

}int main(int argc, char** argv)

char chqtnum;

do while (chqtnum != 'q' && chqtnum != 'q');

postthreadmessage(ithread, thrd_message_exit, 0, 0);

waitforsingleobject(hthread, infinite);

closehandle(hthread);

return 0;

}

Linux 下監控USB裝置拔插事件

使用udev的規則來實現 自2.6 核心開始,就可以使用udev 協助管理系統中各裝置名稱。例如,磁碟裝置排序 網絡卡裝置排序等。udev能動態地在 dev目錄裡產生自定義的 標識性強的裝置檔案或裝置鏈結。udev依賴核心中的sysfs的支援。自2.6 核心開始,引入了sysfs 檔案系統。sysf...

C 與USB裝置通訊

最近有乙個專案,也是我碩士大 要寫的東西,就是從兩個線陣相機上讀取資料 分析資料 做到利用線陣相機檢測接觸線 鐵路接觸網 幾何引數的功能。由於線陣相機是從武漢的乙個創業公司買的,實在是坑死個人了,就是為了接收個usb傳送過來的資料,費了我好大力氣,其中兩篇是講的libusb,是乙個開源的usb類庫叫...

C 獲得裝置usb資訊

需要在專案右擊引用,點選程式集,搜尋 system.management 然後安裝他 然後使用下面的 就可以獲得裝置的 usb 請看 static list getusbdevices foreach var device in collection collection.dispose retur...