0

Windows ストア アプリ (別名メトロ アプリ) を開発しています。マシン ID を GUID 形式で取得する必要があります。

私はこのコードを持っています:

var token = HardwareIdentification.GetPackageSpecificToken(null);
var hardwareId = token.Id;
byte[] bytes = new byte[hardwareId.Length];
dataReader.ReadBytes(bytes);
String machineId = BitConverter.ToString(bytes);

machineId は string ですが、GUID と一致しません。誰かがこの値を GUID 形式に変換する方法を知っていますか?

4

1 に答える 1

0

以下のコードを試してください。これは、別のSO スレッドのコードに基づいています。

    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);
于 2013-02-20T05:37:48.183 に答える