40

A license for CPU-intensive software like Pix4D says it can be installed on two devices - but with a condition. Reading the finer print, it seems that one device can be a full-processing workstation/desktop whereas the other must be a mobile device/laptop.

How would the software know? Are there giveaways in the hardware specifications for determining something like this e.g. presence of a battery?
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?

16
  • In Devices and Printers, you can see a device that represents your PC. If it's a laptop, it will show a laptop icon. Not sure if other software can or will use this info, though.
    – ecube
    Feb 4, 2016 at 23:52
  • 17
    The presence of a battery is probably a good one, but I'm sure some UPSes would also count as batteries.
    – user253751
    Feb 5, 2016 at 8:58
  • 2
    I think Pix4D does not check what type of hardware is used. It just gives out two different licenses. In one of the license only "Rapid Check processing mode" is allowed whereas the other is a full license.
    – user797717
    Feb 5, 2016 at 9:58
  • 1
    The software may be able to glean that info from the OS - if not, I'd suggest that the presence of a lid button (i.e the laptop sensing when the lid is closed) is probably a dead giveaway for laptops. of course this doesn't cover all, as you do get phablets / all-in-ones and others.
    – jammypeach
    Feb 5, 2016 at 11:24
  • 2
    Does the software even attempt to enforce it? Or is it just honor system? Feb 5, 2016 at 21:29

4 Answers 4

53

On Linux, you can run the following command:

sudo dmidecode --string chassis-type

On a laptop, this will return "Laptop", "Notebook" "Portable", or "Sub Notebook" (depending on the manufacturer).

For Windows, refer to the following documentation to determine your computer chassis type:

Identifying the Chassis Type of a Computer

8
  • 21
    Heh, that pizza box really confused me until I read this en.wikipedia.org/wiki/Pizza_box_form_factor
    – ecube
    Feb 4, 2016 at 23:25
  • I had a laptop that identified itself as such once. It was a piece of junk ;p
    – Journeyman Geek
    Feb 4, 2016 at 23:47
  • 5
    Both my desktop and my laptop systems identify themselves as 'Other'. I do expect many would correctly identify themselves, mind you. Feb 5, 2016 at 16:25
  • @dma1324 Wow, 117 mips for under $100k!
    – Michael
    Feb 5, 2016 at 18:10
  • 3
    My Chromebook identified itself as a desktop.
    – dramzy
    Feb 5, 2016 at 18:43
13

To add to the other answer here re: Linux, Windows software can also access this information through various provided WinAPI methods/objects. One such example is Win32_ComputerSystem, which among others, has members such as:

PCSystemTypeEx

Data type: uint16
Access type: Read-only

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

Possible values include:

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

As for how Windows knows this, while I can't say with certainty because I lack both the Windows source code and any official documentation links presently, I'd say its a simple matter of the hardware ID's within the computer giving this information away to the OS. Since Windows has a massive partner network that submit their drivers directly to Microsoft (for driver updates via Windows Update, "standard" drivers to include with install media), it's pretty easy for Windows to figure out precisely what kind of computer you've installed it on. Just by the CPU ID alone you could make a pretty safe bet whether the machine is a laptop or desktop.

8
  • Yeah but how does Windows know Feb 5, 2016 at 10:40
  • 3
    @PreferenceBean Windows kernel asks windows server about hardware ids and windows server asks linux? ;)
    – user72945
    Feb 5, 2016 at 11:48
  • 2
    In the answer please Feb 5, 2016 at 11:51
  • 6
    The CPUID is strongly suggestive; but not foolproof. Small form factor desktops sometimes use mobile CPUs, and there have been a few ultra high end gaming "laptops" that were built using desktop CPUs. Feb 5, 2016 at 16:43
  • 1
    "Dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard" nongnu.org/dmidecode Almost certainly WMI gets the information from the same place. That's what standards are for after all.
    – Ben
    Feb 8, 2016 at 9:55
3

There are various hints. One is the "system type" in the DMI data. Another is whether or not the system has a battery. Yet another is the type of processor, chipset, display controller, display etc. None of them are foolproof but by taking them together it would be pretty easy to write a classifier that grouped systems into "almost certainly a laptop", "almost certainly a desktop/workstation" and "undetermined".

But honestly enforcement of licensing through technical/activation methods tends to be focussed on preventing large scale abuse. Small scale abuse is more likely to be handled through audits, disgrunted employees ratting out their bosses 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?

If you can buy a laptop that is as fast as your workstation you must have a pretty low end (or old) workstation.

2

The code that was used to write the software can determine what type of "Chassis" it is currently being run on.

See this answer for an example in C#. This can determine whether the computer is any of the following types (some are seemingly repeats, and/or outdated):

  • Other
  • Unknown
  • Desktop
  • LowProfileDesktop
  • PizzaBox
  • MiniTower
  • Tower
  • Portable
  • Laptop
  • Notebook
  • Handheld
  • DockingStation
  • AllInOne
  • SubNotebook
  • SpaceSaving
  • LunchBox
  • MainSystemChassis
  • ExpansionChassis
  • SubChassis
  • BusExpansionChassis
  • PeripheralChassis
  • StorageChassis
  • RackMountChassis
  • SealedCasePC

Also about my comment saying that they are seemingly repetitive - that was a matter of my opinion - just by looking over the list it appears to have been created ad hoc over the years and does not appear to be MECE. Indeed, I several instances of people saying that the need for differentiation between some of the above form factors is no longer relevant or understood (for instance see this short summary of the sub notebook.

5
  • technet.microsoft.com/en-us/library/ee156537.aspx For the values when querying WMI. There isn't solid consensus on where the delineation is between "workstation" and "mobile device", but the vendor should be able to state what criteria they use.
    – blaughw
    Feb 5, 2016 at 21:12
  • 3
    Which ones are "easter eggs"? All of those look like actual chassis types to me. Feb 6, 2016 at 10:34
  • 1
    Microsoft has a policy of absolutely no easter eggs allowed, so it might be surprising to you, but none of them are easter eggs. Feb 7, 2016 at 6:23
  • Even a PizzaBox or LunchBox?
    – William
    Feb 8, 2016 at 15:32
  • I just wikipediaed it and you are correct! Those are real chassis types lol - i will update my answer
    – William
    Feb 8, 2016 at 15:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.