问题如下:
c#读取硬盘物理序列号请大家帮帮忙谢谢!

解决方案 »

  1.   

    using System;
    using System.Runtime.InteropServices;namespace ArLi.CommonPrj {#region how use this?
    /*
    string sVol = getvol.GetVolOf("C");
    */
    #endregionpublic class getvol{[DllImport("kernel.dll")]
    private static extern int GetVolumeInformation(
    string lpRootPathName,
    string lpVolumeNameBuffer,
    int nVolumeNameSize,
    ref int lpVolumeSerialNumber,
    int lpMaximumComponentLength,
    int lpFileSystemFlags,
    string lpFileSystemNameBuffer,
    int nFileSystemNameSize
    );public static string GetVolOf(string drvID){
    const int MAX_FILENAME_LEN = 6;
    int retVal = 0;
    int a =0;
    int b =0;
    string str = null;
    string str = null;
    int i = GetVolumeInformation(
    drvID + @":\",
    str,
    MAX_FILENAME_LEN,
    ref retVal,
    a,
    b,
    str,
    MAX_FILENAME_LEN
    );return retVal.ToString("x");
    }
    }
    }
      

  2.   

    我想用C#读取ide1的primary硬盘编号,请问能不能给个例子啊
      

  3.   

    发帖前搜索一下是一个优良的习惯
    http://topic.csdn.net/t/20060529/11/4785648.html
      

  4.   

    用C#里自带的类好像存在权限问题,我是用其他语言写的dll,在c#里调用取序列号的
      

  5.   

    用 DeviceIoControlwmi 有权限限制
      

  6.   

    试试这个吧using System;
    using System.Management;namespace HTSoft.Common.Register
    {
        /// <summary> 
        /// 计算机信息类
        /// </summary> 
        internal class Computer
        {
            public string CpuID;
            public string MacAddress;
            public string DiskID;
            public string IpAddress;
            public string LoginUserName;
            public string ComputerName;
            public string SystemType;
            public string TotalPhysicalMemory; //单位:M 
            private static Computer _instance;        internal static Computer Instance()
            {
                if (_instance == null)
                    _instance = new Computer();
                return _instance;
            }        internal Computer()
            {
                CpuID = GetCpuID();
                MacAddress = GetMacAddress();
                DiskID = GetDiskID();
                IpAddress = GetIPAddress();
                LoginUserName = GetUserName();
                SystemType = GetSystemType();
                TotalPhysicalMemory = GetTotalPhysicalMemory();
                ComputerName = GetComputerName();
            }
            string GetCpuID()
            {
                try
                {
                    //获取CPU序列号代码 
                    string cpuInfo = "";//cpu序列号 
                    ManagementClass mc = new ManagementClass("Win32_Processor");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                    }
                    moc = null;
                    mc = null;
                    return cpuInfo;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }        }
            string GetMacAddress()
            {
                try
                {
                    //获取网卡硬件地址 
                    string mac = "";
                    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        if ((bool)mo["IPEnabled"] == true)
                        {
                            mac = mo["MacAddress"].ToString();
                            break;
                        }
                    }
                    moc = null;
                    mc = null;
                    return mac;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }        }
            string GetIPAddress()
            {
                try
                {
                    //获取IP地址 
                    string st = "";
                    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        if ((bool)mo["IPEnabled"] == true)
                        {
                            //st=mo["IpAddress"].ToString(); 
                            System.Array ar;
                            ar = (System.Array)(mo.Properties["IpAddress"].Value);
                            st = ar.GetValue(0).ToString();
                            break;
                        }
                    }
                    moc = null;
                    mc = null;
                    return st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }        }        string GetDiskID()
            {
                try
                {
                    //获取硬盘ID 
                    String HDid = "";
                    ManagementClass mc = new ManagementClass("Win32_DiskDrive");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        HDid = (string)mo.Properties["Model"].Value;
                    }
                    moc = null;
                    mc = null;
                    return HDid;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }        }        /// <summary> 
            /// 操作系统的登录用户名 
            /// </summary> 
            /// <returns></returns> 
            string GetUserName()
            {
                try
                {
                    string st = "";
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {                    st = mo["UserName"].ToString();                }
                    moc = null;
                    mc = null;
                    return st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }        }
            /// <summary> 
            /// PC类型 
            /// </summary> 
            /// <returns></returns> 
            string GetSystemType()
            {
                try
                {
                    string st = "";
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {                    st = mo["SystemType"].ToString();                }
                    moc = null;
                    mc = null;
                    return st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }        }        /// <summary> 
            /// 物理内存 
            /// </summary> 
            /// <returns></returns> 
            string GetTotalPhysicalMemory()
            {
                try
                {                string st = "";
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {                    st = mo["TotalPhysicalMemory"].ToString();                }
                    moc = null;
                    mc = null;
                    return st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary> 
            ///  获取计算机名称
            /// </summary> 
            /// <returns></returns> 
            string GetComputerName()
            {
                try
                {
                    return System.Environment.GetEnvironmentVariable("ComputerName");
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
        }
    }
      

  7.   

    String HDid = "";
                    ManagementClass mc = new ManagementClass("Win32_DiskDrive");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        HDid = (string)mo.Properties["Model"].Value;
                    }