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

本文介绍了一个使用C#实现的方法,用于获取指定盘符的硬盘序列号。通过调用kernel32.dll中的GetVolumeInformation函数,该方法可以返回硬盘的序列号作为字符串。

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

    }

}

转载于:https://www.cnblogs.com/fantasyice/archive/2009/02/21/1395583.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值