获取硬盘序列号

摘要 : Read this letter of the hard drive serial number

using System;
using System.IO;
using  System.Runtime.InteropServices;
using System.Text;
using  Microsoft.Win32;

/// <summary>
/// HardDiskVal 的摘要说明。
///  读取指定盘符的硬盘序列号
/// 功能:读取指定盘符的硬盘序列号
/// </summary>
public class  HardDiskVal
{
    [DllImport("kernel32.dll")]
    private static extern  int GetVolumeInformation(
         string lpRootPathName,
         string lpVolumeNameBuffer,
         int nVolumeNameSize,
         ref int lpVolumeSerialNumber,
         int lpMaximumComponentLength,
         int lpFileSystemFlags,
         string lpFileSystemNameBuffer,
         int nFileSystemNameSize
         );
    /// <summary>
    /// 获得盘符为drvID的硬盘序列号,缺省为C
    /// </summary>
    /// <param name="drvID"></param>
    /// <returns></returns>
    public string HDVal(string drvID)
    {
        const int MAX_FILENAME_LEN = 256;
        int retVal = 0;
        int a = 0;
        int b = 0;
        string str1 = null;
        string str2 = null;
        int i = GetVolumeInformation(
             drvID + @":\",
             str1,
             MAX_FILENAME_LEN,
             ref retVal,
             a,
             b,
             str2,
             MAX_FILENAME_LEN
             );
        return retVal.ToString();
    }

    public static string HDVal()
    {
        const int MAX_FILENAME_LEN = 256;
        int retVal = 0;
        int a = 0;
        int b = 0;
        string str1 = null;
        string str2 = null;
        int i = GetVolumeInformation(
             "c:\\",
             str1,
             MAX_FILENAME_LEN,
             ref retVal,
             a,
             b,
             str2,
             MAX_FILENAME_LEN
             );
        return retVal.ToString();
    }
}
上一篇 :UpdatePanel使用技巧以及常见问题
下一篇 :Javascript 随机数