Windows 8 如何在Windows 8中以GUID格式获取硬件ID
我正在开发一个Windows应用商店应用程序(又称metro应用程序)。我需要以GUID格式获取计算机ID 我有以下代码:Windows 8 如何在Windows 8中以GUID格式获取硬件ID,windows-8,guid,Windows 8,Guid,我正在开发一个Windows应用商店应用程序(又称metro应用程序)。我需要以GUID格式获取计算机ID 我有以下代码: var token = HardwareIdentification.GetPackageSpecificToken(null); var hardwareId = token.Id; byte[] bytes = new byte[hardwareId.Length]; dataReader.ReadBytes(bytes); String machineId = Bit
var token = HardwareIdentification.GetPackageSpecificToken(null);
var hardwareId = token.Id;
byte[] bytes = new byte[hardwareId.Length];
dataReader.ReadBytes(bytes);
String machineId = BitConverter.ToString(bytes);
machineId是字符串,但与GUID不匹配。有人知道如何将此值转换为GUID格式吗?请尝试下面的代码。它是基于另一个代码的
您可以发布一个示例字符串值吗?为什么需要转换为GUID?它不是GUID。它也会改变。好啊我需要转换为GUID,因为我必须调用接收GUID作为机器ID的旧版服务。我知道字符串不是GUID,但我可以使用一些字节组来构建GUID。例如,我可以使用处理器+内存+BIOS等来创建GUID并将其发送到我的服务。它是否需要在卸载和重新安装应用程序后继续使用?如果没有,您可以生成一个Guid,将其存储在本地存储中并使用它。
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
//dataReader.ReadBytes(bytes);
String machineId = BitConverter.ToString(bytes);
Guid guid;
bool isDataAVailale = GuidTryParse(machineId, out guid);
myText.Text = guid.ToString();
}
public static bool GuidTryParse(string s, out Guid result)
{
if (!String.IsNullOrEmpty(s) && guidRegEx.IsMatch(s))
{
result = new Guid(s);
return true;
}
result = default(Guid);
return false;
}
static Regex guidRegEx = new Regex("^[A-Fa-f0-9]{32}$|" +
"^({|\\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\\))?$|" +
"^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$", RegexOptions.Singleline);