2012-04-11 1 views
13

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

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

+5

Почему вам это нравится? Этот процессор имеет значение для вас? Или наличие мыши/клавиатуры? Или что-то другое? – svick

+0

@svick: на рабочем столе наше приложение работает как клиент и сервер, но на вкладке и на мобильном устройстве он работает только как клиент. – Mahantesh

+4

Что происходит, когда пользователь берет планшет и помещает его в док-станцию ​​с клавиатурой, мышью и внешним монитором? –

ответ

0

Мое предложение было бы призвать к 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 процессорах, я считаю. Возможно, вам потребуется найти конкретный тип процессора, на который настроен таргетинг, или передать список целевых типов процессоров.

+4

Было бы ошибкой предположить, что все планшеты являются ARM. Это правда сегодня, но Intel намерена выйти на этот рынок. –

+0

Правда, но с такой скоростью, что делает планшет отличным от стандартного ПК в стороне от аппаратного обеспечения? Я могу проверить отсутствие мыши или клавиатуры, я полагаю, или типа. Возможно, размер экрана? Приложения WPF обычно хорошо работают с экранами разного размера, поэтому я предполагаю, что следующий вопрос заключается в намерении дифференцировать планшет с ПК. –

+1

Исходный вопрос гласит: «Больше возможностей, если он работает на ПК». Поскольку эти функции не были определены, я не могу ответить на ваш вопрос. –

7

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

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

Правда. Однако посмотрите на настольные компьютеры HP TouchSmart, проданные в Walmart и Staples, и множество других магазинов. Это полные настольные ПК с сенсорными экранами.Вы не хотите случайно думать, что находитесь на планшете, просто измеряя Touch. – djdanlib

5

@Mahantesh: Если это специально между Desktop PC & Tablet (за исключением лэптоп), то вы можете проверить «свойства батареи» например, AC/Battery Supply, оставшаяся батарея и т. д., который, насколько мне известно, доступен только для компьютеров, работающих от аккумулятора, &, конечно, Desktop этого не делает.

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

+0

@ Dardev: спасибо .. Я подумаю об этом. – Mahantesh

+0

@Mahantesh: Если вы найдете это полезным, пожалуйста, добавьте голосование ... :) У меня не было много. –

+0

Настольный ПК может иметь «свойства батареи», подключая к нему систему Batterty-Backup/UPS (обычно через USB). – hometoast

Смежные вопросы