欢迎来到天天文库
浏览记录
ID:12072947
大小:49.50 KB
页数:20页
时间:2018-07-15
《抓取usb大量储存装置的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、抓取USB大量储存装置的方法偶然发现了问题地答案,先放在这里,有空再看==========================================抓取USB大量儲存裝置的方法Part1(forWin2000)http://delphi.ktop.com.tw/topic.asp?topic_Id=39813http://delphi.ktop.com.tw/topic.asp?topic_Id=39830http://delphi.ktop.com.tw/topic.asp?topic_Id=39850
2、http://delphi.ktop.com.tw/topic.asp?topic_Id=400171.當裝上USB大量儲存裝置時,以下的機碼值會有以下的變化HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesUSBSTOR會多出這一個Key"Enum"變成HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesUSBSTOREnum在以上這個機碼,你只能使用OpenKeyReadOnly()來進行資料讀取
3、另外,在Enum這個Key底下有幾個值可以參考A:Count-->目前機器上有幾個USB大量儲存裝置B:數字值,例如0USBVid_090x&Pid_11427&1b1f5133&0&20:表示該USB大量儲存裝置安裝的順序USBVid_090x&Pid_11427&1b1f5133&0&2:為該裝置的DeviceID現在,讓我們來觀察DeviceID==>USBVid_090x&Pid_11427&1b1f5133&0&2其中,Vid_090x&Pid_1142:Vid090x為製造廠商編號Pid
4、_1142為該裝置的產品編號7&1b1f5133&0&2:為您的機器上面,USB插座的編號所以,我們對這一串資料(USBVid_090x&Pid_11427&1b1f5133&0&2)綜合前面說明的部分作以下的解釋:目前,您的機器上有EnumCount個USB大量儲存裝置提供服務(Services);該裝置的資訊為0(第一個USB大量儲存裝置),製造廠商編號Vid_090x產品編號Pid_1142目前的位置在編號(7&1b1f5133&0&2)插座上附上實作函式給大家參考//取得USB大量儲存裝置的函式/
5、/DeviceID(ProductKey)//USB插座編號(SlotID)//儲存裝置編號(EnumNo)procedureGet_Current_USBSTOR_Info(varProductKey,SlotID:string;varEnumNo:integer);varct,Vid_Pos,i:integer;reg:TRegistry;HardWareKeyStr:string;FindSlotID:boolean;beginHardWareKeyStr:='';ProductKey:='';SlotI
6、D:='';FindSlotID:=FALSE;reg:=TRegistry.Create;reg.RootKey:=HKEY_LOCAL_MACHINE;if(reg.OpenKeyReadOnly('SYSTEMCurrentControlSetServicesUSBSTOREnum')=TRUE)thenbeginct:=0;ct:=reg.ReadInteger('Count');if(ct>0)thenbeginEnumNo:=ct-1;HardWareKeyStr:=reg.ReadStri
7、ng(IntToStr(ct-1));end;//if...end!!Vid_Pos:=Pos('Vid_',HardWareKeyStr);if(Vid_Pos>0)thenfori:=Vid_PostoLength(HardWareKeyStr)dobeginif(HardWareKeyStr[i]='')thenbeginFindSlotID:=TRUE;Continue;end//if...end!!elseif(FindSlotID=TRUE)thenSlotID:=SlotID+HardWareK
8、eyStr[i]elseProductKey:=ProductKey+HardWareKeyStr[i];end;//for...i...end!!end;//if...end!!reg.CloseKey;reg.Free;end;抓取USB大量儲存裝置的方法Part2(forWin2000)針對Part1的實作函式//取得USB大量儲存裝置的函式//DeviceID(ProductK
此文档下载收益归作者所有