确定metro应用在Windows 8标签或台式电脑上运行(Determine metro app

2019-06-23 12:48发布

我正在开发与Windows 8 Metro风格的应用程序。 这个程序有一些更多的功能,如果它在台式PC上运行相比,平板电脑。 但我的问题是如何检测的应用程序在PC或Tab运行。 我不想seperately释放2建立PC和TAB。

请帮我。 更新:Wheter是否有可能与GetSystemMatrics办呢? 在桌面上,我们的应用程序行为类似于客户端和服务器,但在标签和移动设备它表现得像客户端只

Answer 1:

Windows.Devices命名空间有丰富的关于设备能力的信息。 对于确定例如,如果设备支持触摸,你可以使用:

var hasTouch = Windows.Devices.Input
                  .PointerDevice.GetPointerDevices()
                  .Any(p => p.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch);


Answer 2:

@Mahantesh:如果是台式机和平板( 不包括笔记本电脑 )之间的明确,那么你可以检查“电池性能”,如AC /电池供电,电池剩余电量等 ,这些就都只能对电池运行的计算机,因为我知道电力和肯定桌面没有做到这一点。

简单来说,而它的存在对我的笔记本电脑电池的通知,不适用于我的台式电脑。



Answer 3:

我的建议是要降下来,以在CoreDLL的API的GetSystemInfo

下面是一个例子电话:

    [DllImport("coredll")]
    static extern void GetSystemInfo(ref SYSTEM_INFO pSI); 

    public struct SYSTEM_INFO
    {
        public uint dwOemId;
        public uint dwPageSize;
        public uint lpMinimumApplicationAddress;
        public uint lpMaximumApplicationAddress;
        public uint dwActiveProcessorMask;
        public uint dwNumberOfProcessors;
        public uint dwProcessorType;
        public uint dwAllocationGranularity;
        public uint dwProcessorLevel;
        public uint dwProcessorRevision;
    }

如果从获取平板电脑这一信息,它应该因为它是在ARM处理器上,我相信运行返回2577的处理器类型。 您可能需要找到你所定位的处理器类型或通过有针对性的处理器类型的列表。



文章来源: Determine metro app is running in Windows 8 tab or Desktop PC