using System;using System.IO;using System.Runtime.InteropServices;using System.Text;using Microsoft.Win32;
namespace Wjb.ReadOrWriteIniAndReg{////// 读取指定盘符的硬盘序列号///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);////// 获得盘符为drvID的硬盘序列号,缺省为C/////////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 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();}}