C#获取硬盘序列号

硬盘

using System;
using System.Runtime.InteropServices;

namespace ArLi.CommonPrj {

#region how use this?
/*
string sVol = getvol.GetVolOf("C");
*/
#endregion

public class getvol{

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

public static string GetVolOf(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("x");
}
}
}

时间: 2024-10-06 05:34:27

C#获取硬盘序列号的相关文章

在.NET下获取硬盘序列号的问题

问题|硬盘 一般软件的注册机制可以通过获取硬件序列号,然后用非对称加密算法生成相应的公钥和私钥.但是用Managed Code写获取硬盘序列号的代码不能解决所有的问题,比如不能在非管理员的权限下使用,前几天Sunmast在他的Blog上发布了<如何得到硬盘序列号?.NET版本[C#]>,就是没有解决这个问题,用WMI也有很多问题. 要想顺利获取硬盘的序列号,目前只能依靠非托管代码了.DiskId32是一个源码公开的C++程序,可以解决上述问题.由于代码比较底层,我对VC和DDK不熟悉,没有能力

win7中vc++如何获取硬盘序列号

问题描述 win7中vc++如何获取硬盘序列号 我想获取win7下计算机硬盘的序列号,用来做软件加密,求各位大神帮帮忙啊!!!!!!! 解决方案 http://blog.163.com/jinfd@126/blog/static/6233227720133218314327/

关于js获取 硬盘序列号的问题 请看下面代码 我有4个硬盘 只显示一个序列号

问题描述 关于js获取 硬盘序列号的问题 请看下面代码 我有4个硬盘 只显示一个序列号 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var properties = service.ExecQuery("SELECT * FROM Win32_DiskDrive"); var e

&lt;转&gt;另一个获取硬盘序列号的方法

原谅转自:http://blog.sina.com.cn/s/blog_57dff12f0100d5so.html   #define  DFP_GET_VERSION                    0x00074080#define  FILE_DEVICE_SCSI                   0x0000001b#define  IOCTL_SCSI_MINIPORT_IDENTIFY       ((FILE_DEVICE_SCSI << 16 ) + 0x0501)#

&lt;转&gt;VC 之获取硬盘序列号

原谅转自:http://blog.sina.com.cn/s/blog_612b382d0100efdt.html 1,第一步:创建设备对象,得到设备句柄,设备为硬盘.{CString sFilePath;sFilePath.Format("\\\\.\\PHYSICALDRIVE%d", driver);HANDLE hFile=::CreateFile(sFilePath,                     GENERIC_READ | GENERIC_WRITE,     

用C#获取硬盘序列号,CPU序列号,网卡MAC地址的源码_C#教程

privatestring[]GetMoc() { string[]str=newstring[3]; ManagementClassmcCpu=newManagementClass("win32_Processor"); ManagementObjectCollectionmocCpu=mcCpu.GetInstances(); foreach(ManagementObjectminmocCpu) { str[0]=m["ProcessorId"].ToStrin

使用C#获取CPU及硬盘序列号的源代码

首先需添加对System.Management的引用. view plaincopy to clipboardprint? using System;     using System.Runtime.InteropServices;     using System.Management;        namespace Hardware     {         /// <summary>         /// HardwareInfo 的摘要说明.         /// <

Java编程获取硬盘空间

因为论坛有人问到这个问题,所以就写了这篇文章.希望对大家有所帮助. 一般来讲,要用java得到硬盘空间,有3种方法: 1. 调用system的command,然后分析得到的结果,这种方法有很强的系统依赖性,linux下和win下要分别写程序. 下面是一个win下的例子,编译成功之后,运行java Diskspace yourdir(比如c:\) import java.io.BufferedReader; import java.io.InputStreamReader; /** * Deter

c# 获取硬盘与盘符信息的问题

问题描述 问题1:已知盘符,如何获取物理硬盘的型号(非序列号)?问题2:已知硬盘,如何获取其分区的盘符分别是什么? 解决方案 解决方案二:privatevoidbutton1_Click(objectsender,System.EventArgse){ManagementClassdiskClass=newManagementClass("Win32_LogicalDisk");ManagementObjectCollectiondisks=diskClass.GetInstances