4

Mac アドレスにアクセスするための WinRT の API を探しています。

4

2 に答える 2

6

言うまでもなくMACアドレスを取得することはできませんが、ハードウェア固有の情報を取得して、マシンを識別しようとしている場合は取得できます。

この件について説明している msdn の完全な記事は次のとおりです:アプリ固有のハードウェア ID (ASHWID) を使用してデバイスごとのアプリ ロジックを実装するためのガイダンス (Windows)

完全な ID ではなく、必要な情報のみを使用するように注意してください。ID は、ユーザーにとって役に立たない情報 (たとえば、Dock Station バイトなど) に基づいて変更される可能性があるためです。

以下は、数バイト (CPU ID、メモリのサイズ、ディスク デバイスのシリアル番号、および BIOS) に基づいて計算されたデバイス ID のコード サンプルです。

string deviceSerial = string.Empty;
// http://msdn.microsoft.com/en-us/library/windows/apps/jj553431
Windows.System.Profile.HardwareToken hardwareToken = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
using (DataReader dataReader = DataReader.FromBuffer(hardwareToken.Id))
{
    int offset = 0;
    while (offset < hardwareToken.Id.Length)
    {
        byte[] hardwareEntry = new byte[4];
        dataReader.ReadBytes(hardwareEntry);

        // CPU ID of the processor || Size of the memory || Serial number of the disk device || BIOS
        if ((hardwareEntry[0] == 1 || hardwareEntry[0] == 2 || hardwareEntry[0] == 3 || hardwareEntry[0] == 9) && hardwareEntry[1] == 0)
        {
            if (!string.IsNullOrEmpty(deviceSerial))
            {
                deviceSerial += "|";
            }
            deviceSerial += string.Format("{0}.{1}", hardwareEntry[2], hardwareEntry[3]);
        }
        offset += 4;
    }
}

Debug.WriteLine("deviceSerial=" + deviceSerial);
于 2012-11-23T09:22:12.850 に答える
2

それを行う方法はありません。Windows ストア アプリ API はサンドボックス化されており、主にプライバシーに関する懸念から、ユーザーに関して取得できる情報がかなり制限されています。

于 2012-10-15T20:02:13.700 に答える