O software pode diferenciar entre um laptop e um desktop?

42

Uma licença para um software com uso intensivo de CPU, como o Pix4D , diz que ele pode ser instalado em dois dispositivos, mas com uma condição. Ao ler a impressão mais precisa, parece que um dispositivo pode ser uma estação de trabalho de processamento completo / desktop, enquanto o outro deve ser um dispositivo móvel / laptop.

Como o software saberia? Há brindes nas especificações de hardware para determinar algo como isto, e. presença de uma bateria?
Como o software é totalmente funcional em ambas as máquinas, essa condição não se tornaria irrelevante se eu comprasse um laptop de última geração tão rápido quanto a estação de trabalho?

    
por Abhi 04.02.2016 / 23:57

4 respostas

54

No Linux, você pode executar o seguinte comando:

sudo dmidecode --string chassis-type

Em um laptop, isso retornará "Laptop", "Notebook" "Portátil" ou "Sub Notebook" (dependendo do fabricante).

Para Windows, consulte a documentação a seguir para determinar o tipo de chassi do seu computador:

Identificando o tipo de chassi de um computador

    
por 05.02.2016 / 00:09
13

Para adicionar à outra resposta aqui re: Linux, o software Windows também pode acessar essas informações através de vários métodos / objetos WinAPI fornecidos. Um exemplo é Win32_ComputerSystem , que entre outros, tem membros como:

PCSystemTypeEx

Data type: uint16
Access type: Read-only

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

Os valores possíveis incluem:

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

Quanto a como o Windows sabe disso, embora eu não possa dizer com certeza porque não tenho o código-fonte do Windows e nenhum link de documentação oficial atualmente, eu diria que é uma simples questão da identificação de hardware dentro do computador. informações para o sistema operacional. Como o Windows tem uma enorme rede de parceiros que envia seus drivers diretamente para a Microsoft (para atualizações de driver via Windows Update, drivers "padrão" para incluir com mídia de instalação), é muito fácil para o Windows descobrir exatamente que tipo de computador você instalou em diante. Apenas pelo processador ID sozinho você pode fazer uma aposta muito segura se a máquina é um laptop ou desktop.

    
por 05.02.2016 / 05:53
3

Existem várias dicas. Um é o "tipo de sistema" nos dados do DMI. Outra é se o sistema tem ou não uma bateria. Outra é o tipo de processador, chipset, controlador de tela, display, etc. Nenhum deles é a prova de falhas, mas ao montá-los seria muito fácil escrever um classificador que agrupasse sistemas em "quase certamente um laptop", "quase certamente um estação de trabalho / estação de trabalho "e" indeterminado ".

Mas, honestamente, o cumprimento do licenciamento por meio de métodos técnicos / de ativação tende a ser focado na prevenção do abuso em grande escala. É mais provável que o abuso em pequena escala seja tratado por meio de auditorias, funcionários disgrunted denunciando seus chefes, etc.

Given the software is fully functional on both machines, wouldn't this condition become irrelevant if I just buy a high-end laptop which is just as fast as the workstation?

Se você pode comprar um laptop que é tão rápido quanto sua estação de trabalho, você deve ter uma estação de trabalho bastante baixa (ou antiga).

    
por 05.02.2016 / 18:53
2

O código usado para escrever o software pode determinar o tipo de "Chassi" no qual ele está sendo executado atualmente.

Veja esta resposta para um exemplo em C # Isso pode determinar se o computador é qualquer um dos seguintes tipos (alguns são aparentemente repetidos e / ou desatualizados):

  • Outro
  • Desconhecido
  • Desktop
  • LowProfileDesktop
  • PizzaBox
  • MiniTower
  • Torre
  • Portátil
  • Laptop
  • Caderno
  • Handheld
  • DockingStation
  • AllInOne
  • Subnotebook
  • SpaceSaving
  • LunchBox
  • MainSystemChassis
  • Chassi de expansão
  • Sub-chassi
  • BusExpansionChassis
  • PeripheralChassis
  • StorageChassis
  • RackMountChassis
  • SealedCasePC

Também sobre o meu comentário dizendo que eles são aparentemente repetitivos - que era uma questão de minha opinião - apenas olhando a lista, parece que ela foi criada ad hoc ao longo dos anos e não parece ser MECE . De fato, vários exemplos de pessoas dizendo que a necessidade de diferenciação entre alguns dos fatores de forma acima não é mais relevante ou compreendida (por exemplo, veja este breve resumo do sub caderno .

    
por 05.02.2016 / 20:28