[Visual Studio]C# 讀取磁碟機、光碟機與USB資訊,屬性與其他
前言:這次比較偷懶,畢竟只是一個工具,有興趣的就直接抓回去測就知道啦~
說明:
目前這樣可以知道本機有哪些可使用的媒體與類型,再來就是檢測USB內容與CD內容了吧…
第一個按鈕是直接去讀取所有的東西與屬性,速度較慢。
第二個速度很快,並且可以了解磁碟機代號與是否有媒體存在
第三個是因為前兩個只有列舉出幾種Property,故地三個是可以讓使用者查一下代碼表
回去改Visual Studio的屬性值。
註:屬性可能回傳null,例如沒有光碟或沒插卡的光碟機與讀卡機,在媒體類型那邊就是NULL。
Code:
Part1
1: using (ManagementClass Device = new ManagementClass(@"Win32_Diskdrive"))
2: {
3: ManagementObjectCollection MOC = Device.GetInstances();
4: foreach (ManagementObject MO in MOC)
5: {
6:
7: listBox1.Items.Add(MO["DeviceId"]);//取得第幾個Device
8: listBox1.Items.Add(MO["PNPDeviceID"]);//取得DEVICE資訊
9:
10: foreach (ManagementObject b in MO.GetRelated("Win32_DiskPartition"))
11: {
12: listBox1.Items.Add( b["Name"]);//取得磁碟機分割磁區號碼
13: foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk"))
14: listBox1.Items.Add(c["Name"]);//取得磁碟機代號
15: }
16: }
17: }
Part2
1: ManagementObjectSearcher search1 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");//搜尋所有Win32_LogicalDisk
2: foreach (ManagementObject obj in search1.Get())
3: {
4:
5: listBox1.Items.Add("Letter: " + obj["Caption"].ToString());//磁碟機代號
6: listBox1.Items.Add("Description: " + obj["Description"].ToString());//
7:
8: try
9: {
10: listBox1.Items.Add("File System: " + obj["FileSystem"].ToString());//媒體類型
11: }
12: catch
13: {
14: listBox1.Items.Add("File System: " + "No Disk");//沒有媒體
15: }
16: }
Part3
1: ManagementObjectSearcher search1 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");
2: foreach (ManagementObject obj in search1.Get())
3: {
4: foreach (PropertyData prop in obj.Properties)
5: {
6: listBox1.Items.Add(prop.Name);
7: }
8: }
圖片: