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

關於 外接式存取裝置 問題

尚未結案
wolfling
初階會員


發表:5
回覆:20
積分:25
註冊:2007-10-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-03 09:48:41 IP:61.222.xxx.xxx 訂閱
各位先進大家好 小弟近來寫程式遇到一個問題 假如 我電腦上同時插上了許多外接存取裝置(如USB外接硬碟 隨身碟 SD卡 等諸如此類) 這時我要如何去尋找這接裝置
爬文時看的似乎用 GetDriveType(disk) 這個API 但是僅能得到某一個磁碟區(如C:)是

另外DeviceIoControl 這個API 似乎都回傳給我一個數值
我希望得到的是 某一個磁碟區 是什麼樣的裝置(如C:是USB外接式硬碟 ,D:是1394外接式硬碟 ,E:是SD卡,F:是CF卡 諸如此類)
請問我該怎麼著手做呢
(PS:這麼做 我是想測試 快速的檢驗各個接卡是否正確 以前是一次放一種(使用GetDriveType) 但是這樣耗費時間太長)
------
work hard bring success
wolfling
初階會員


發表:5
回覆:20
積分:25
註冊:2007-10-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-03 16:39:46 IP:61.222.xxx.xxx 訂閱
小弟參考了一些文章 發現WMI這著東西 可以讀取到這些資訊
我目前有使用了C#可以直接得到這些磁碟資訊
但是BCB上要使用WMI似乎 很麻煩
但是小弟 目前用BCB用的比較順手 想用BCB寫的話 不知道有沒有其他方法呢
各位大大 有空的話 可以幫忙解一下嗎

以下是C#的程式碼
不知道有沒有大大可以用BCB寫出來><

private void Form1_Load(object sender, EventArgs e)
{
//取得磁碟及標籤
ManagementObjectSearcher pObj = new ManagementObjectSearcher("select * from Win32_LogicalDiskToPartition");

foreach (ManagementObject p in pObj.Get())
{
object dependent = p["Dependent"];
object antecedent = p["Antecedent"];
textBox1.AppendText(dependent.ToString() "\r\n");
textBox1.AppendText(antecedent.ToString() "\r\n");
}
//取得類型
ManagementObjectSearcher xObj = new ManagementObjectSearcher("select * from Win32_DiskDrive");
foreach (ManagementObject q in xObj.Get())
{
object interfacetype = q["InterfaceType"];
textBox1.AppendText(interfacetype.ToString() "\r\n");
}
}

------
work hard bring success
編輯記錄
wolfling 重新編輯於 2008-01-08 11:40:51, 註解 無‧
wolfling
初階會員


發表:5
回覆:20
積分:25
註冊:2007-10-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-07 10:24:15 IP:61.222.xxx.xxx 訂閱
看樣子 只好先用WMI頂著了
如果有哪位大大 突然想到方法願意教小弟的話
小弟先謝謝囉~*
------
work hard bring success
編輯記錄
wolfling 重新編輯於 2008-01-08 11:40:33, 註解 無‧
系統時間:2024-04-25 17:10:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!