win8 metro 硬件系统版本等统计信息

转自:win8开发中需要用到一些系统版本之类的统计信息,总结如下。

1.获取软件的版本号,这个比较简单:

Package package = Package.Current;
PackageId packageId = package.Id;
PackageVersion version = packageId.Version;
string version = String.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision);

 

2.获取设备的唯一号UDID,win8开发中没有直接能够取到这个参数的,但是有一个代替的编号可以使用,

具体信息可以参考原文链接:http://www.cnblogs.com/lihaiyin/archive/2012/09/25/2701709.html

复制代码
private string GetUniqueId()
{
       var token = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
        IBuffer buffer = token.Id;
        using (var dataReader = DataReader.FromBuffer(buffer))
        {
                var bytes = new byte[buffer.Length];
                dataReader.ReadBytes(bytes);
                return BitConverter.ToString(bytes);
        }
}
复制代码

 

3.获取设备的名字和生产厂商

具体信息可以参考原文链接:http://jeekun.sinaapp.com/archives/127

复制代码
string deviceModel = string.Empty;
string deviceManufactor = string.Empty;
string[] properties = { "System.Devices.ModelName", "System.Devices.Manufacturer" };
string aqs = "System.Devices.LocalMachine:=System.StructuredQueryType.Boolean#True";//过滤条件:只选取localMachine为true的

var containers = await PnpObject.FindAllAsync(PnpObjectType.DeviceContainer, properties, aqs);//查找出当前机器
{
        var container = containers[0];
        deviceModel = container.Properties[properties[0]].ToString();
        deviceManufactor = container.Properties[properties[1]].ToString();
}
复制代码
4、 获取设备的名称
        internal async static Task<string> GetDeviceName()
        {
            try
            {
                String DeviceModel;
                string[] properties = { "System.Devices.ModelName" };
                var containers = await PnpObject.FindAllAsync(PnpObjectType.DeviceContainer, properties);
                foreach (PnpObject container in containers)
                {
                    if (container.Id.Equals("{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"))
                    {
                        DeviceModel = container.Properties["System.Devices.ModelName"].ToString();
                        return DeviceModel;
                    }
                }
                return "";
            }
            catch
            {
                return "";
            }
        }

如何为设备或 PnP 对象检索附加属性(使用 JavaScript 和 HTML 的 Windows 应用商店应用)

规范属性列表

如果某个属性值不与某个特定设备接口相关联,那么该属性值可能会与该接口所属的设备相关联,或者与代表设备硬件产品的可视部分的设备容器对象(如制造商或型号名称)相关联。 以下是设备接口、设备和设备容器的属性名称列表。请参阅检索相关的 PnP 对象以了解如何在对象类型之间导航。

设备接口属性

名称 属性 描述

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

设备接口的容器的 ID。

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

此接口所属的设备的设备实例 ID。

System.Devices.InterfaceClassGuid

DEVPKEY_DeviceInterface_ClassGuid

接口的类 GUID。

System.Devices.InterfaceEnabled

DEVPKEY_DeviceInterface_Enabled

表明接口是否已启用。

System.ItemNameDisplay

DEVPKEY_NAME

设备接口的友好名称。

System.Storage.IsMediaRemovable

DEVPKEY_Storage_Removable_Media

表明卷的媒体是否可移除。

System.Storage.IsPortable

DEVPKEY_Storage_Portable

表明存储堆栈是否将存储视为可移植的。

 

设备属性

名称 属性 描述

System.Devices.Children

DEVPKEY_Device_Children

子级的设备实例 ID。 已从内核状态进行实时查询。

System.Devices.CompatibleIds

DEVPKEY_Device_CompatibleIds

此属性是一个包含设备的兼容 ID 列表的多 sz 字符串值。

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

设备的容器的 ID。

System.Devices.DeviceCapabilities

DEVPKEY_Device_Capabilities

此属性是一个包含设备的功能的按位 OR 的 DWORD 值。 这些功能是由在 cfgmgr32.h 中定义的 CM_DEVCAP_Xxxxx 位掩码表示的。

System.Devices.DeviceCharacteristics

DEVPKEY_Device_Characteristics

此属性是一个包含设备的特性的按位 OR 的 DWORD 值。 这些标志是在 wdm.h 和 ntddk.h 中定义的,有关这些标志的描述,请参阅 IoCreateDevice 函数的DeviceCharacteristics参数。

System.Devices.DeviceHasProblem

DEVPKEY_Device_HasProblem

此属性是从内核状态进行实时查询的。

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

设备实例 ID。

System.Devices.HardwareIds

DEVPKEY_Device_HardwareIds

此属性是一个包含设备的硬件 ID 列表的多 sz 字符串值。

System.Devices.InLocalMachineContainer

DEVPKEY_Device_InLocalMachineContainerr

表明 devnode 是否在计算机的容器中。

System.ItemNameDisplay

DEVPKEY_NAME

设备实例的名称。

 

容器属性

名称 属性和描述
System.ItemNameDisplay PKEY_NAME - 容器的名称。
System.Devices.DiscoveryMethod DEVPKEY_DeviceContainer_DiscoveryMethod - 设备发现方法列表。
System.Devices.Connected DEVPKEY_DeviceContainer_IsConnected - 表明设备是否已连接。
System.Devices.Paired DEVPKEY_DeviceContainer_IsPaired - 表明设备是否已配对。
System.Devices.Icon DEVPKEY_DeviceContainer_Icon - 到设备图标的路径。
System.Devices.LocalMachine DEVPKEY_DeviceContainer_IsLocalMachine - 此容器是否代表本地计算机 (PC)。
System.Devices.MetadataPath DEVPKEY_DeviceContainer_MetadataPath - 到设备元数据的路径。
System.Devices.LaunchDeviceStageFromExplorer DEVPKEY_DeviceContainer_LaunchDeviceStageFromExlplorer- 是否从 Windows 资源管理器启动 Device Stage。
System.Devices.DeviceDescription1 DEVPKEY_DeviceContainer_DeviceDescription1 - 设备描述。
System.Devices.DeviceDescription2 DEVPKEY_DeviceContainer_DeviceDescription2 - 设备描述。
System.Devices.NotWorkingProperly DEVPKEY_DeviceContainer_HasProblem - 该容器是否存在问题。如果容器中的任何现有设备将 DEVPKEY_DEVICE_HasProblem 设置为 TRUE,则为 TRUE。
System.Devices.IsShared DEVPKEY_DeviceContainer_IsSharedDevice - 是否共享设备。
System.Devices.IsNetworkConnected DEVPKEY_DeviceContainer_IsNetworkDevice - 设备是否已连接网络。
System.Devices.IsDefault DEVPKEY_DeviceContainer_IsDefaultDevice - 设备是否为默认设备。
System.Devices.Category DEVPKEY_DeviceContainer_Category_Desc_Singular - 设备类别(单数的)。
System.Devices.CategoryPlural DEVPKEY_DeviceContainer_Category_Desc_Singular - 设备类别(复数的)。
System.Devices.CategoryGroup DEVPKEY_DeviceContainer_CategoryGroup_Desc - 设备类别组。
System.Devices.FriendlyName DEVPKEY_DeviceContainer_FriendlyName - 友好名称。
System.Devices.Manufacturer DEVPKEY_DeviceContainer_Manufacturer - 制造商名称。
System.Devices.ModelName DEVPKEY_DeviceContainer_ModelName - 型号名称。
System.Devices.ModelNumber DEVPKEY_DeviceContainer_ModelNumber - 型号编号。

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值