2

アプリを実行しているコンピューター/タブレットに関する情報を取得しようとしています。これは分析目的のためです。具体的には、メーカーと型番を知りたいです。

理想的には、次のような情報を取得します。

Manufacturer: Toshiba
Model: Satellite S850-BT3N22 

しかし、私は私が得ることができるものは何でも取ります。SOで見つけるだけでなく、独自のソリューションを試すのに時間を費やしましたが、解決策を見つけることができません。

私はこれを取得するためにしばらく時間を費やしました:

var hardwareToken = Windows.System.Profile.HardwareIdentification.getPackageSpecificToken(null);
var idReader = Windows.Storage.Streams.DataReader.fromBuffer(hardwareToken.id);        
var idArray = new Array(hardwareToken.id.length);
idReader.readBytes(idArray);

したがって、idArray は整数の配列です。このバイト配列を文字列に変換しようとしましたが、漢字のように見えるものの束に変換されます。これは、この hardwareToken.id の目的ではないと思います。idReader 配列の JavaScript コンソールからの出力例を次に示します。

idArray.toString();
"3,0,26,139,5,0,90,224,6,0,1,0,4,0,246,50,1,0,248,181,2,0,80,124,9,0,250,137"

次に試したのは、msdn の「Device Enumeration Sample」をエミュレートすることです: http://code.msdn.microsoft.com/windowsapps/Device-Enumeration-Sample-a6e45169

これから、ネットワーク上にあるいくつかの異なるデバイスを確認でき、System.ItemNameDisplay と System.Devices.ModelName を取得できますが、どのデバイスがコンピューターであるかを区別する方法がわかりません。すべての Pnp デバイスが表示されます。

誰かが私がこの情報を得るのを手伝ってくれるなら、私はそれを大いに感謝します.

4

3 に答える 3

0

今日はこれに対処しなければなりませんでした。重要なのは、DeviceContainerのSystem.Devices.LocalMachine属性を確認することです。これは、デバイスがローカルシステムを表す場合に当てはまります(のデバイスコンテナ属性を参照)。

以下は、MSデバイス列挙サンプルに基づく簡単で汚いC#の例です。うまくいけば、そのサンプルのJSバージョンを取得して、同じ方法でそれを適応させるのは非常に簡単なはずです。

string[] properties = { "System.Devices.LocalMachine", "System.ItemNameDisplay", "System.Devices.ModelName", "System.Devices.ModelNumber", "System.Devices.Manufacturer" };
var containers = await PnpObject.FindAllAsync(PnpObjectType.DeviceContainer, properties);

foreach (PnpObject container in containers)
{
    bool localMachine = (bool)container.Properties["System.Devices.LocalMachine"];
    if (localMachine)
    {
        string name = (string)container.Properties["System.ItemNameDisplay"];
        string modelName = (string)container.Properties["System.Devices.ModelName"];
        string modelNumber = (string)container.Properties["System.Devices.ModelNumber"];
        string manufacturer = (string)container.Properties["System.Devices.Manufacturer"];
        // do as you like now...
        break;
    }
}
于 2013-03-06T20:58:46.237 に答える
0

私はこれに対する答えを得ました:

次のように、Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation を使用します。

var deviceInfo = new Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation();
var manufacturer = deviceInfo.systemManufacturer;
var productName = deviceInfo.systemProductName;

サンプルデータは次のとおりです。

manufacturer: SAMSUNG ELECTRONICS CO., LTD.
productName: 700Z3A/700Z4A/700Z5A/700Z5B
于 2013-02-14T00:05:33.263 に答える
0

この情報を取得するには、 BrowserSpyなどを使用してみてください。彼らはこの分野の最先端にいます。

私が知る限り、これを行う純粋な Javascript の方法はありません。

詳細については、こちらをご覧ください。

指定した呼び出しに関する限り、次の情報を確認できます。

CPU ID of the processor
Size of the memory
Serial number of the disk device
Network adapter (such as NIC MAC address)
Audio adapter
Docking station
Bluetooth address
Mobile broadband device ID
BIOS
于 2013-02-12T01:39:18.927 に答える