在c++需要使用GetSystemFirmwareTable的方法来获得PC的序列号,需要写的代码很多,但是在c#可以使用WMI来拿到序列号
首先是安装系统。管理、安装了这个库,在dotnet框架和dotnet核心都可以使用本文的方法获取电脑的序列号
安装系统。管理的方法是通过Nuget搜索系统。管理然后安装,如果使用的是VisualStudio 2017项目格式就可以复制下面代码到项目文件
& lt; PackageReference包括="系统。管理”Version=" 4.5.0 "/祝辞
我比较喜欢第二个方法来安装,因为这个速度比较快
安装完成使用WMI拿到序列号需要的代码很少,请看下面
var搜索=new ManagementObjectSearcher (“SELECT * FROM Win32_BIOS”); var mobos=search.Get (); foreach (var临时mobos) { 对象串行=temp (“SerialNumber”);//ProcessorID Win32_CPU如果你使用 pcsn=serial.ToString (); Console.WriteLine (pcsn); } >之前这样就可以拿到序列号,但是可能有些设备是没有序列号,很多时候是返回下面代码
由O.E.M
引用>
由O.E.M.
默认
默认字符串上面代码最后一行就是空白,所以需要先做判断是不是存在序列号,所有代码请看下面
///& lt; summary>///获得电脑号///& lt;/summary> 公共静态字符串GetPcsnString () { var pcsn=" "; 试一试 { var搜索=new ManagementObjectSearcher (“SELECT * FROM Win32_BIOS”); var mobos=search.Get (); foreach (var临时mobos) { 对象串行=temp (“SerialNumber”);//ProcessorID Win32_CPU如果你使用 pcsn=serial.ToString (); Console.WriteLine (pcsn); 如果 ( ! string.IsNullOrEmpty (pcsn) ,,由O.E. pcsn !="M”//没有找到 ,,! pcsn.Contains (“O.E.M”) ,,! pcsn.Contains (“OEM”) ,,! pcsn.Contains(“违约”) ) { 打破; } 其他的 { Console.WriteLine(“默认值”); } } } 捕获(异常e) { Debug.WriteLine (e);//无法处理 } 返回pcsn; } >之前需要知道,使用这个方法获取序列号是比较耗性能的,建议放在其他线程获取
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
c#获取电脑序列号的方法示例