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

如何判斷一個磁盤為USB磁盤?

尚未結案
cindy78
一般會員


發表:4
回覆:19
積分:4
註冊:2004-05-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-25 14:42:03 IP:219.140.xxx.xxx 未訂閱
我根據有關資料,利用GetDriveType,判斷一個磁盤的類型為DRIVE_REMOVABLEB時,且不是A盤時磁盤為USB.但是,產生如下問題,不是所有的USB槃都可以判斷得出來,有一些USB盤的屬性為DRIVE_FIXED,和硬盤的屬性一樣,不知怎麽樣才能準確的判斷一個磁盤為USB盤。我的程序如下: DirList:=TStringList.Create; len:=254; buffer:=Pchar(Allocmem(255)); dw:=GetLogicalDriveStrings(len,buffer); for i:=1 to (dw div 4) do begin DirList.Add(AnsiString(buffer)); buffer:=buffer 4; end; for i:=0 to DirList.Count-1 do begin PanFu:=PChar(allocmem(10)); strpcopy(panfu,DirList.Strings[i]); case GetDriveType(panfu) of 0: flag:=0; 1 :flag:=1; DRIVE_REMOVABLE:flag:=2; DRIVE_FIXED:flag:=3; DRIVE_REMOTE:flag:=4; DRIVE_CDROM:flag:=5; DRIVE_RAMDISK:flag:=6; end; if (flag=2) and (DirList.Strings[i]<>'A:\') and (DirList.Strings[i]<>'a:\') then
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-25 18:44:38 IP:203.95.xxx.xxx 未訂閱
請參考這篇: http://delphi.ktop.com.tw/topic.php?topic_id=38394
cindy78
一般會員


發表:4
回覆:19
積分:4
註冊:2004-05-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-26 15:24:33 IP:219.140.xxx.xxx 未訂閱
這篇文章我看過了,論壇裏面有關USB的文章,提問之前我都看過的,呵呵,不過還是要謝謝timhuang大大。他是用Cbuilder寫的,我不知道怎麽用delphi實現,前面也看過有人用vc實現的,可是都牽涉到一個問題如何用 這個庫函數,delphi裏面好象沒有喔。
cindy78
一般會員


發表:4
回覆:19
積分:4
註冊:2004-05-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-26 15:29:44 IP:219.140.xxx.xxx 未訂閱
文件名怎麽沒有帖上去,是這個<winioctl.h>這個頭文件,在delphi中如何用,好像沒有。 如果沒有,那麽在delphi中怎麽實現呢。
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-26 18:01:03 IP:203.95.xxx.xxx 未訂閱
請參考這篇: http://www.pjh2.de/jediplus/api/item.php?id=29 這個檔案內有一個 SetupAPI.Pas 將它 use 進來即可!
cindy78
一般會員


發表:4
回覆:19
積分:4
註冊:2004-05-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-28 16:27:12 IP:219.140.xxx.xxx 未訂閱
真是很感謝! 可是還是沒有winioctl.h這個頭文件阿。 我看見有人使用DeciveIoControl實現,可是裏面的參數都來自上面的那個頭文件,難道就沒有辦法用delphi馬? 我前面已經寫了很多代碼,真是不想換語言。
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-28 17:09:36 IP:203.95.xxx.xxx 未訂閱
參考這篇吧, http://www.pjh2.de/jediplus/api/item.php?id=1 裡面有 winioctl 的 pas !!
cindy78
一般會員


發表:4
回覆:19
積分:4
註冊:2004-05-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-31 15:59:06 IP:219.140.xxx.xxx 未訂閱
虽然我现在还是没有实现,但还是很感谢大大的帮助。
cindy78
一般會員


發表:4
回覆:19
積分:4
註冊:2004-05-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-05-31 16:03:02 IP:219.140.xxx.xxx 未訂閱
现在可以判断是否有USB了,但是还是不能判断他的盘副,所以还是没有办法对这个盘进行操作。 虽然我现在还是没有实现,但还是很感谢大大的帮助。就此结案了。
系統時間:2024-05-15 21:50:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!