線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2167
推到 Plurk!
推到 Facebook!

USB 週邊抓取問題?

缺席
kk_9951
一般會員


發表:5
回覆:3
積分:1
註冊:2006-08-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-11 12:44:35 IP:61.31.xxx.xxx 訂閱
小弟要抓取USB週邊裝置,結果只能抓到 usb->rs232裝置,其它的都抓不到?


[code cpp]
DEFINE_GUID(USB_DRIVER_GUID, 0x4D36E978,0xE325,0x11CE,0xBF,0xC1,0x08,0x00,0x2B,0xE1,0x03,0x18); // usb>rs232 的GUID, 使用此GUID 可抓到usb->rs232
//DEFINE_GUID(USB_DRIVER_GUID, 0x36FC9E60,0xC465,0x11CF,0x80,0x56,0x44,0x45,0x53,0x54,0x00,0x00); // 欲抓取的usb 週邊,使用此GUID 抓不到任何東西(在裝置管理員中可以看到)

請在此區域輸入程式碼
[/code]


[code cpp]

HANDLE OpenUsbDevice(const GUID *pGuid, char *sDevNameBuf)
{
HANDLE hOut = INVALID_HANDLE_VALUE;
HDEVINFO hDevInfo = SetupDiGetClassDevs(pGuid, NULL, NULL, DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);
SP_INTERFACE_DEVICE_DATA deviceInfoData;
deviceInfoData.cbSize = sizeof (SP_INTERFACE_DEVICE_DATA);
ULONG nGuessCount = MAXLONG;
for(ULONG iDevIndex=0; iDevIndex {
if(SetupDiEnumDeviceInterfaces(hDevInfo, 0, pGuid, iDevIndex, &deviceInfoData)) // 使用usb->rs232 GUID 可以往下執行,如使用另一個 GUID 則執行else .
{
if((hOut=OpenOneDevice(hDevInfo, &deviceInfoData, sDevNameBuf)) != INVALID_HANDLE_VALUE)
break;
}
else if(GetLastError() == ERROR_NO_MORE_ITEMS) //No more items
{
break;
}
}
SetupDiDestroyDeviceInfoList(hDevInfo);
return hOut;
}
請在此區域輸入程式碼
[/code]


小弟剛接觸 USB ,煩請各位大大指教... 謝謝!!
系統時間:2024-04-26 16:17:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!