Подтвердить что ты не робот

Определение приложения metro выполняется на вкладке Windows 8 или на настольном ПК

Я разрабатываю приложение с окном 8-метрового стиля. У этого приложения есть еще одна функция, если она работает на настольном ПК по сравнению с Tablet. Но моя проблема заключается в том, как обнаружить приложение на ПК или в Tab.  Я не хочу выпускать 2 сборки отдельно для ПК и TAB.

Пожалуйста, помогите мне. Обновление: возможно ли сделать это с помощью GetSystemMatrics? На рабочем столе наше приложение работает как клиент и сервер, но на вкладке и на мобильном устройстве он работает только как клиент

4b9b3361

Ответ 1

В пространстве имен Windows.Devices имеется множество сведений о возможностях устройства. Например, чтобы определить, включено ли сенсорное устройство, вы можете использовать:

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

Ответ 2

@Mahantesh: если это специально между настольным ПК и планшетным ПК (за исключением ноутбука), то вы можете проверить свойства батареи ", такие как питание от сети переменного тока/аккумулятора, оставшаяся батарея и т.д., которые до Я знаю, что доступны только для компьютеров, работающих от аккумулятора, и, конечно же, Desktop этого не делает.

Проще говоря, уведомление о батарее недоступно для моего настольного ПК, тогда как оно есть для моего ноутбука.

Ответ 3

Мое предложение состояло в том, чтобы обратиться к API GetSystemInfo в CoreDLL

Вот пример вызова:

    [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;
    }

Если вы получите эту информацию с планшета, она должна вернуть процессорный тип 2577, потому что он работает на процессорах ARM, на которые я верю. Возможно, вам потребуется найти конкретный тип процессора, на который вы нацеливаетесь, или передать список целевых типов процессоров.