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

抓取USB大量儲存裝置的方法Part 2( for Win2000)

 
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-31 13:00:18 IP:210.200.xxx.xxx 未訂閱
針對Part 1 的實作函式 //取得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;    現在,讓我們來看一看;自己的電腦上有使用過哪幾種USB大量儲存裝置 (包含了隨身碟,及使用USB外接盒的硬碟)     各位是否發現,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum機碼中 儲存了曾經在這台機器上使用過的USB大量儲存裝置的資料 現在,讓我們再更詳細地來看其中包含了哪些訊息(參考下圖) 上圖中,紅色方框的部分為該裝置曾經使用過的USB插座 例如: 裝置 Disk&VenEZ_Disk&Prod_MassStorage_Disk&Rev 就曾經使用過兩個USB插座(6&4e63deb&0)和(7&1274702d&0) 所以,配合Part1中說明的部分,我們就可以取得現有USB大量儲存裝置的相關資料了!!
系統時間:2024-11-28 0:39:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!