C#取硬盘序列号(-备忘-)

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

    }

}

posted @ 2009-02-21 22:25  李帅斌-Memory  阅读(1108)  评论(0编辑  收藏  举报