Many software licenses are pretty restrictive when it comes to how, and where you can install a program, but just how good are those programs at determining what type of device they are installed on? Today’s SuperUser Q&A post has the answer to a curious reader’s question.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

Photo courtesy of Robert (Flickr).

The Question

SuperUser reader Abhi wants to know if software can actually differentiate between a desktop computer and a laptop:

Can software actually differentiate between a desktop computer and a laptop?

How would the software know what type of device it is installed on? Are there giveaways in the hardware specifications for determining something like this (i.e. the presence of a battery)?

Given that the software is fully functional on both devices, would this condition become irrelevant if I just buy a high-end laptop which is just as fast as the desktop?

The Answer

SuperUser contributors abnev and Technik Empire have the answer for us. First up, abnev:

Followed by the answer from Technik Empire:

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 TechNet documentation to determine your computer chassis type: Identifying the Chassis Type of a Computer

Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.

Possible values include:

As for how Windows knows this, while I cannot say with certainty because I presently lack both the Windows source code and any official documentation links, I would say it is a simple matter of the hardware ID’s within the computer giving this information away to the operating system.

Since Windows has a massive partner network that submits their drivers directly to Microsoft (for driver updates via Windows Update and “standard” drivers to include with installation media), it is pretty easy for Windows to figure out precisely what kind of computer you have it installed on. Just by the CPU ID alone, you could determine whether it is a desktop computer or a laptop.