C# 透過 WMI 取得硬碟序號 ( 物理 / 邏輯磁碟)

 

請先加入參考 System.Management

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Management;

 

namespace sln_Win32_LogicalDisk

{

   public partial class Form1 : Form

   {

       public Form1()

       {

           InitializeComponent();

       }

 

       // 列舉所有邏輯磁碟機Volumne 序號

       private void button1_Click(object sender, EventArgs e)

       {

           String strQry = "SELECT * FROM Win32_LogicalDisk"; // 指定查詢Win32_LogicalDisk ( 邏輯磁碟)

 

           // ManagementObjectSearcher 類別, 根據指定的查詢擷取管理物件的集合。

           ManagementObjectSearcher searcher = new ManagementObjectSearcher(strQry);

 

           // 使用Foreach 陳述式存取集合類別中物件(元素)

           // Get 方法, 叫用指定的WMI 查詢, 並傳回產生的集合。

           foreach (ManagementObject QryObj in searcher.Get())

           {

               // 取得磁碟Volumne 名稱跟序號

               listBox1.Items.Add(QryObj["Name"].ToString() + " " + QryObj["VolumeSerialNumber"].ToString());

           }

       }

 

       // 取得某邏輯磁碟機Volumne 序號

       private void button2_Click(object sender, EventArgs e)

       {

           string strCls = "Win32_LogicalDisk"; // WMI 名稱空間( Namespace )

           string strDrive = "C:"; // 指定C: 邏輯磁碟機

 

           // ManagementObject 類別, 表示WMI 執行個體。

           ManagementObject objCls = new ManagementObject(strCls + ".DeviceID=" + "\"" + strDrive + "\"");

 

           // 取得磁碟Volumne 序號

            MessageBox.Show(objCls.GetPropertyValue("VolumeSerialNumber").ToString());

       }

 

       // 取得某物理磁碟機( 媒體) 序號

       private void button3_Click(object sender, EventArgs e)

       {

           string strCls = "Win32_PhysicalMedia"; // WMI 名稱空間( Namespace )

           string strDrive = "0"; // 指定第一顆硬碟

 

           // ManagementObject 類別, 表示WMI 執行個體。

           ManagementObject objCls = new ManagementObject(

               strCls + ".Tag=\"\\\\\\\\.\\\\PHYSICALDRIVE" + strDrive + "\"");

 

           // 取得物理磁碟機( 硬碟) 序號

           MessageBox.Show(objCls.GetPropertyValue("SerialNumber").ToString());

       }

   }

}

 

此文來自這裡

http://blog.blueshop.com.tw/hammerchou/archive/2006/10/12/42247.aspx

謝謝這位大大

arrow
arrow
    全站熱搜

    createps 發表在 痞客邦 留言(0) 人氣()