Может ли программное обеспечение различать ноутбук и рабочий стол?

Лицензия на процессорное программное обеспечение, например Pix4D , говорит, что он может быть установлен на двух устройствах - но с условием. Читая тонкую печать, кажется, что одно устройство может быть полнофункциональной рабочей станцией /рабочим столом, тогда как другое должно быть мобильным устройством /ноутбуком.

Как будет знать программное обеспечение? Есть ли предложения в технических характеристиках оборудования для определения чего-то подобного, например. наличие батареи?
Учитывая, что программное обеспечение полностью работоспособно на обеих машинах, не будет ли это условие неуместным, если я просто куплю ноутбук высокого класса, который так же быстро, как и рабочая станция?

42 голоса | спросил Abhi 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 01:57:10 +0300000000amFri, 05 Feb 2016 01:57:10 +030016 2016, 01:57:10

4 ответа


54

В Linux вы можете запустить следующую команду:

sudo dmidecode --string chassis-type

На ноутбуке это вернет «Ноутбук», «Ноутбук», «Портативный» или «Sub Notebook» (в зависимости от производителя).

Для Windows обратитесь к следующей документации, чтобы определить тип вашего компьютера:

Идентификация типа шасси компьютера

ответил abnev 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 02:09:33 +0300000000amFri, 05 Feb 2016 02:09:33 +030016 2016, 02:09:33
13

Чтобы добавить к другому ответу здесь: Linux, программное обеспечение Windows также может получить доступ к этой информации с помощью различных предоставленных методов /объектов WinAPI. Одним из таких примеров является Win32_ComputerSystem , среди прочего, есть такие члены, как:

  

PCSystemTypeEx

Data type: uint16
Access type: Read-only

Type of the computer in use, such as laptop, desktop, or Tablet.

Возможные значения:

Unspecified (0)
Desktop (1)
Mobile (2)
Workstation (3)
Enterprise Server (4)
SOHO Server (5)
Appliance PC (6)
Performance Server (7)
Slate (8)
Maximum (9)

Что касается того, как Windows это знает, хотя я не могу сказать с уверенностью, потому что в настоящее время мне не хватает как исходного кода Windows, так и любых официальных ссылок документации, я бы сказал, что это простой вопрос об идентификаторах оборудования в компьютере, информации в ОС. Поскольку у Windows есть мощная партнерская сеть, которая передает свои драйверы непосредственно в Microsoft (для обновления драйверов через Windows Update, «стандартных» драйверов для включения в установочный носитель), Windows довольно легко понять, какой именно компьютер вы установили это на. Только с помощью CPU ID вы можете сделать довольно безопасную ставку, является ли машина ноутбук или рабочий стол.

ответил 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 07:53:58 +0300000000amFri, 05 Feb 2016 07:53:58 +030016 2016, 07:53:58
3

Существуют различные подсказки. Один из них - «тип системы» в данных DMI. Другое - есть ли у батареи батарея или нет. Еще один тип процессора, набора микросхем, контроллера дисплея, дисплея и т. Д. Ни один из них не является надежным, но, объединив его, было бы довольно легко написать классификатор, который сгруппировал системы в «почти наверняка ноутбук», «почти наверняка рабочий стол /рабочая станция "и" неопределенный ".

Но честное соблюдение лицензирования с помощью технических /активационных методов, как правило, сосредоточено на предотвращении крупномасштабных злоупотреблений. Маломасштабные злоупотребления, скорее всего, будут обрабатываться посредством аудитов, разочарованных сотрудников, покидающих своих боссов и т. Д.

  

Учитывая, что программное обеспечение полностью работоспособно на обеих машинах, не будет ли это условие неуместным, если я просто куплю ноутбук высокого класса, который так же быстро, как и рабочая станция?

Если вы можете купить ноутбук, который так же быстро, как и ваша рабочая станция, у вас должна быть довольно низкая (или старая) рабочая станция.

ответил plugwash 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 20:53:43 +0300000000pmFri, 05 Feb 2016 20:53:43 +030016 2016, 20:53:43
2

Код, который использовался для написания программного обеспечения, может определить, какой тип «шасси» в данный момент он выполняется.

См. этот ответ для примера в C #. Это может определить, является ли компьютер любым из следующих типов (некоторые, похоже, повторяются и /или устарели):

  • Другое
  • Unknown
  • Desktop
  • LowProfileDesktop
  • PizzaBox
  • MiniTower
  • Башня
  • Портативный
  • Ноутбук
  • Ноутбук
  • Ручной
  • док-станция
  • AllInOne
  • субноутбук
  • SpaceSaving
  • Закуска
  • MainSystemChassis
  • ExpansionChassis
  • субшасси
  • BusExpansionChassis
  • PeripheralChassis
  • StorageChassis
  • RackMountChassis
  • SealedCasePC

Кроме того, о моем комментарии, говорящем, что они кажутся повторяющимися - это было мое мнение - просто просмотрев список, он, кажется, был создан ad hoc на протяжении многих лет и не кажется MECE . Действительно, я несколько примеров людей, говорящих о том, что необходимость дифференциации между некоторыми из приведенных выше форм-факторов больше не актуальна или не понимается (например, см. это краткое описание субблока .

ответил William 5 FebruaryEurope/MoscowbFri, 05 Feb 2016 22:28:05 +0300000000pmFri, 05 Feb 2016 22:28:05 +030016 2016, 22:28:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132