抓取USB大量儲存裝置的方法Part 1( for Win2000) |
|
G01
高階會員 發表:249 回覆:379 積分:215 註冊:2002-05-21 發送簡訊給我 |
1.當裝上USB大量儲存裝置時,以下的機碼值會有以下的變化 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR
會多出這一個Key "Enum"變成
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum
在以上這個機碼,你只能使用OpenKeyReadOnly()來進行資料讀取
另外,在Enum這個Key底下有幾個值可以參考
A: Count -->目前機器上有幾個USB大量儲存裝置
B: 數字值,例如
0 USB\Vid_090x&Pid_1142\7&1b1f5133&0&2
0:表示該USB大量儲存裝置安裝的順序
USB\Vid_090x&Pid_1142\7&1b1f5133&0&2 :為該裝置的
DeviceID 現在,讓我們來觀察DeviceID ==> USB\Vid_090x&Pid_1142\7&1b1f5133&0&2
其中,
Vid_090x&Pid_1142 :Vid090x 為製造廠商編號
Pid_1142 為該裝置的產品編號 7&1b1f5133&0&2 :為您的機器上面,USB插座的編號 所以,我們對這一串資料(USB\Vid_090x&Pid_1142\7&1b1f5133&0&2) 綜合前面說明的部分作以下的解釋: 目前,您的機器上有Enum\Count個USB大量儲存裝置提供服務(Services)
;該裝置的資訊為
0(第一個USB大量儲存裝置),
製造廠商編號 Vid_090x
產品編號 Pid_1142
目前的位置在編號(7&1b1f5133&0&2)插座上 ..............待續...
|
G01
高階會員 發表:249 回覆:379 積分:215 註冊:2002-05-21 發送簡訊給我 |
附上實作函式給大家參考 //取得USB大量儲存裝置的函式 //DeviceID (ProductKey)
//USB插座編號 (SlotID)
//儲存裝置編號 (EnumNo) procedure Get_Current_USBSTOR_Info(var ProductKey,SlotID:string;var EnumNo:integer);
var ct,Vid_Pos,i:integer;
reg:TRegistry;
HardWareKeyStr:string;
FindSlotID:boolean;
begin
HardWareKeyStr := '';
ProductKey := '';
SlotID := '';
FindSlotID := FALSE;
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if(reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\Services\USBSTOR\Enum') = TRUE)then
begin
ct := 0;
ct := reg.ReadInteger('Count');
if(ct > 0)then
begin
EnumNo := ct-1;
HardWareKeyStr := reg.ReadString(IntToStr(ct-1));
end;//if...end!!
Vid_Pos := Pos('Vid_',HardWareKeyStr);
if(Vid_Pos > 0)then
for i := Vid_Pos to Length(HardWareKeyStr) do
begin
if(HardWareKeyStr[i] = '\')then
begin
FindSlotID := TRUE;
Continue;
end//if...end!!
else
if(FindSlotID = TRUE)then SlotID := SlotID HardWareKeyStr[i]
else ProductKey := ProductKey HardWareKeyStr[i];
end;//for...i...end!!
end;//if...end!!
reg.CloseKey;
reg.Free;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |