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

42

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

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

Айла
источник
В разделе «Устройства и принтеры» вы можете увидеть устройство, представляющее ваш компьютер. Если это ноутбук, на нем появится значок ноутбука. Не уверен, что другие программы могут или будут использовать эту информацию.
августа
17
Наличие батареи, вероятно, хорошее, но я уверен, что некоторые ИБП также будут считаться батареями.
user253751
2
Я думаю, Pix4D не проверяет, какой тип оборудования используется. Он просто выдает две разные лицензии. В одной из лицензий разрешен только «Режим быстрой проверки», а в другой - полная лицензия.
user797717
1
Программное обеспечение может быть в состоянии получить эту информацию от ОС - если нет, я бы предположил, что наличие кнопки крышки (то есть, когда ноутбук ощущает, когда крышка закрыта), вероятно, мертвая распродажа для ноутбуков. конечно, это не распространяется на все, так как вы получаете фаблеты / все-в-одном и другие.
jammypeach
2
Программное обеспечение даже пытается принудить это? Или это просто система чести?
whatsisname

Ответы:

54

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

sudo dmidecode --string chassis-type

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

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

Определение типа корпуса компьютера

abnev
источник
21
Хех, что коробка пиццы действительно путают меня , пока я не прочитал эту en.wikipedia.org/wiki/Pizza_box_form_factor
ECUBE
У меня был ноутбук, который однажды назвал себя таковым. Это был кусок хлама; p
подмастерье подмастерье
5
И мой настольный компьютер, и мой ноутбук идентифицируют себя как «Другое». Надеюсь, многие правильно идентифицируют себя.
ChrisInEdmonton
@ dma1324 Ух ты, 117 мипов меньше чем за 100 тысяч долларов!
Майкл
3
Мой Chromebook идентифицировал себя как рабочий стол.
dramzy
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, «стандартные» драйверы, включаемые в установочный носитель), для Windows довольно легко точно определить, какой тип компьютера вы установили. это на. Только по одному идентификатору процессора вы можете сделать довольно безопасную ставку, будь то ноутбук или настольный компьютер.


источник
Да, но как Windows узнает
Легкость мчится с Моникой
3
@PreferenceBean Ядро Windows спрашивает Windows Server об идентификаторах оборудования, а Windows Server спрашивает Linux? ;)
2
В ответ пожалуйста
Легкость Гонки с Моникой
6
CPUID настоятельно наводит на мысль; но не надежный. В настольных компьютерах малого форм-фактора иногда используются мобильные процессоры, и было несколько игровых «ноутбуков» ультравысокого класса, созданных с использованием настольных процессоров.
Дэн Нили
1
«Dmidecode сообщает информацию об аппаратном обеспечении вашей системы, как описано в BIOS вашей системы в соответствии со стандартом SMBIOS / DMI ». Nongnu.org/dmidecode Почти наверняка WMI получает информацию из того же места. Это то, что стандарты в конце концов.
Бен
3

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

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

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

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

plugwash
источник
2

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

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

  • Другие
  • неизвестный
  • рабочий стол
  • LowProfileDesktop
  • плоский ящик
  • MiniTower
  • башня
  • портативный
  • портативный компьютер
  • Блокнот
  • портативный
  • Док-станция
  • Все в одном
  • субноутбук
  • SpaceSaving
  • Коробка для ланча
  • MainSystemChassis
  • ExpansionChassis
  • субшасси
  • BusExpansionChassis
  • PeripheralChassis
  • StorageChassis
  • RackMountChassis
  • SealedCasePC

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

Уильям
источник
technet.microsoft.com/en-us/library/ee156537.aspx Для значений при запросе WMI. Не существует единого мнения о том, где находится различие между «рабочей станцией» и «мобильным устройством», но поставщик должен иметь возможность указать, какие критерии они используют.
Blaughw
3
Какие из них "пасхальные яйца"? Все они выглядят как настоящие типы шасси для меня.
Коди Грей,
1
Microsoft придерживается политики, запрещающей использование пасхальных яиц, поэтому это может вас удивить, но ни одно из них не является пасхальным.
Дерек 朕 會 功夫
Даже PizzaBox или LunchBox?
Уильям
Я только что википедии об этом, и вы правы! Это настоящие шасси, лол - я обновлю свой ответ
Уильям