C# 使用WinRT检索设备的序列号

C# 使用WinRT检索设备的序列号,c#,c++,.net,api,windows-runtime,C#,C++,.net,Api,Windows Runtime,我们正在开发一个应用程序,它需要知道它正在运行的设备的序列号。该应用程序适用于保险公司,用户可以通过该公司直接为设备购买保险。对于保险单,需要序列号。是否可以使用WinRT或metro风格应用程序中可以使用的任何API检索设备的序列号?我不知道它是否完全符合您的需要,但可以唯一标识设备(自Windows 8 RTM以来) 很遗憾,WinRT中不支持WMI。感谢您的回复,但该设备不仅需要唯一标识,而且保险公司还需要该设备的序列号。无论如何,我们仍然可以要求用户输入它 private string

我们正在开发一个应用程序,它需要知道它正在运行的设备的序列号。该应用程序适用于保险公司,用户可以通过该公司直接为设备购买保险。对于保险单,需要序列号。是否可以使用WinRT或metro风格应用程序中可以使用的任何API检索设备的序列号?

我不知道它是否完全符合您的需要,但可以唯一标识设备(自Windows 8 RTM以来)


很遗憾,WinRT中不支持WMI。感谢您的回复,但该设备不仅需要唯一标识,而且保险公司还需要该设备的序列号。无论如何,我们仍然可以要求用户输入它
private string GetHardwareId()
{
    var token = HardwareIdentification.GetPackageSpecificToken(null);
    var hardwareId = token.Id;
    var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId);

    byte[] bytes = new byte[hardwareId.Length];
    dataReader.ReadBytes(bytes);

    return BitConverter.ToString(bytes);
}