我前几天,在网上看见了。
好想是www.aspcool.com.

解决方案 »

  1.   

    如果是取得逻辑序列号(Format产生的那个),用WMI就可以,在引用中,添加system.mangement以后。 
    using System.Management;
    .....
    ManagementObject  m_objDisk  =  new  ManagementObject(  "win32_logicaldisk.deviceid=\"c\"");    
    string  strSN  =  (string)m_objDisk.GetPropertyValue(  "VolumeSerialNumber  ");    

    如果要取得物理分区号,看这个帖子:
    关于硬盘序列号,高手请留步啊. (之一)
    http://expert.csdn.net/Expert/TopicView3.asp?id=1143107  
      

  2.   

    http://expert.csdn.net/Expert/TopicView3.asp?id=1143107
      

  3.   

    用API 很简单
    [System.Runtime.InteropServices.DllImport("kernel32.dll" , EntryPoint="GetVolumeInformationA")]
    internal extern static int GetVolumeInformation( string lpRootPathName , string lpVolumeNameBuffer , int nVolumeNameSize , int lpVolumeSerialNumber , ref int lpMaximumComponentLength , int lpFileSystemFlags ,string lpFileSystemNameBuffer , int nFileSystemNameSize );
    public static string VolumeSerialNumber( string Drive )
    {
    int VolumeSerialNumber = 0;

    GetVolumeInformation(Drive + ":\\", "", 255, ref VolumeSerialNumber, 0, 0, "", 255);     

    return VolumeSerialNumber.ToString( "X" ).Insert( 4 , "-" );
    }