C# 读取硬盘序列号

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下为空:(有没有解决办法我想得到一组纯数字的硬件信息好做为注册算法的参数。不知有没有别的硬件信息比较适合?可否提供些参考
2026年09月19日 09:51
有1个网友回答
网友(1):

不要用WMI来读了,这个东西非常不稳定的,有时候会读不到东西,但有时候又正常,而且容易受系统中的软件影响出现读取异常。
你要读硬件信息,我交你个方法,可以去下载 INTELLILOCK 这个C#混淆工具(当然要XX版的,因为它是收费的,不过也是因为收费的所以它的功能有保障),它有个功能可以为你的程序添加硬件读取功能,包括硬盘、cpu、主板、mac等等,它的这个方法经过它程序处理后可以集成到你的程序中,你按要求调用方法就可以了。具体可以百度它的使用方法。