C# 读取硬盘序列号
try{ManagementObjectSearchersearcher=newManagementObjectSearcher("SELECT*FROMWin32_Ph...
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
string strHardDiskID = null;
foreach(ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
strHardDiskID = strHardDiskID.Substring(8, 6);
return strHardDiskID;
}
catch
{
return "";
}
在WIN7下可以得到序列号,在XP下为空:(
有没有解决办法
我想得到一组纯数字的硬件信息好做为注册算法的参数。不知有没有别的硬件信息比较适合?可否提供些参考 展开
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
string strHardDiskID = null;
foreach(ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
strHardDiskID = strHardDiskID.Substring(8, 6);
return strHardDiskID;
}
catch
{
return "";
}
在WIN7下可以得到序列号,在XP下为空:(
有没有解决办法
我想得到一组纯数字的硬件信息好做为注册算法的参数。不知有没有别的硬件信息比较适合?可否提供些参考 展开
推荐于2016-06-29
展开全部
不要用WMI来读了,这个东西非常不稳定的,有时候会读不到东西,但有时候又正常,而且容易受系统中的软件影响出现读取异常。
你要读硬件信息,我交你个方法,可以去下载 INTELLILOCK 这个C#混淆工具(当然要XX版的,因为它是收费的,不过也是因为收费的所以它的功能有保障),它有个功能可以为你的程序添加硬件读取功能,包括硬盘、cpu、主板、mac等等,它的这个方法经过它程序处理后可以集成到你的程序中,你按要求调用方法就可以了。具体可以百度它的使用方法。
你要读硬件信息,我交你个方法,可以去下载 INTELLILOCK 这个C#混淆工具(当然要XX版的,因为它是收费的,不过也是因为收费的所以它的功能有保障),它有个功能可以为你的程序添加硬件读取功能,包括硬盘、cpu、主板、mac等等,它的这个方法经过它程序处理后可以集成到你的程序中,你按要求调用方法就可以了。具体可以百度它的使用方法。
追问
抓狂的问题,这个所谓取CPU信息的代码在二台机子(一台I7 CPU,一台I5 CPU)上得到的信息一模一样
追答
cpu不要去取,这个更没有意义的,cpu现在大部份都关闭了cpuid功能,所以很多你取不到。
以我的经验,一般你如果是单机那绑硬盘,其它的像主板、bios都可能变,如果是网络软件可以绑mac。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询