程式稍微修改便能用作一般性的處理,目前實現的功能類似於監控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...