Login  

Blog Stats

News


Visual Developer - Visual Basic MVP

隨筆分類

文章分類

每月文章

優質好站連結


強力鎯頭 の VB 部落

您好 ! 歡迎蒞臨 Power Hammer 的 VB 部落 ! 網誌內容主要為 VB .Net C# WMI 等相關資訊 , 提供網友參考

 

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());

        }

    }

}

 

 

posted on Thursday, October 12, 2006 5:52 PM

What People Are Saying About This Post...

# re: C# 取得 硬碟機 序號 ( 物理 / 邏輯 磁碟) 12/14/2006 12:29 PM 硬盘数据恢复
不错~

# re: C# 取得 硬碟機 序號 ( 物理 / 邏輯 磁碟) 3/8/2007 7:28 PM lodzio
http://www.foto-amatoriali-di-ragazze.interrazziale.info @X@

# re: C# 取得 硬碟機 序號 ( 物理 / 邏輯 磁碟) 6/21/2007 8:30 AM kevin
怎么能获取到 u盘的序列号呢?

# re: C# 取得 硬碟機 序號 ( 物理 / 邏輯 磁碟) 9/26/2007 2:27 PM Power Hammer
本篇文章的 Sample 就有囉 , 請參考看看 ^^

# re: C# 取得 硬碟機 序號 ( 物理 / 邏輯 磁碟) 9/23/2008 4:35 PM C
請問 取得物理磁碟機( 硬碟) 序號 是否目前無法取得SATA的資料? 我跑這程式出來的內容是空的

What do you have to say?

Title:
Name:
Url:
驗證碼  
Comments: