软件能区分笔记本电脑和台式电脑吗?

软件能区分笔记本电脑和台式电脑吗?

CPU 密集型软件的许可证,例如Pix4D表示它可以安装在两台设备上 - 但有一个条件。仔细阅读细则,似乎一台设备可以是全处理工作站/台式机,而另一台必须是移动设备/笔记本电脑。

软件如何知道?硬件规格中是否有用于确定此类情况(例如电池是否存在)的提示?
鉴于该软件在两台机器上均能正常运行,如果我只购买一台速度与工作站一样快的高端笔记本电脑,这种情况是否就变得无关紧要了?

答案1

在 Linux 上,您可以运行以下命令:

sudo dmidecode --string chassis-type

在笔记本电脑上,这将返回“笔记本电脑”、“笔记本”、“便携式”或“子笔记本”(取决于制造商)。

对于 Windows,请参阅以下文档以确定您的计算机机箱类型:

识别计算机的机箱类型

答案2

除了此处关于 Linux 的其他答案外,Windows 软件还可以通过提供的各种 WinAPI 方法/对象访问此信息。其中一个例子是Win32_计算机系统其中包括:

计算机系统类型

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 源代码,也没有任何官方文档链接,但我认为这只是计算机中的硬件 ID 将此信息泄露给操作系统的问题。由于 Windows 拥有庞大的合作伙伴网络,这些合作伙伴直接向 Microsoft 提交驱动程序(对于通过 Windows Update 进行驱动程序更新,“标准”驱动程序包含在安装媒体中),因此 Windows 很容易准确地确定您将其安装在哪种计算机上。只需通过 CPUID仅凭这一点,您就可以相当安全地判断该机器是笔记本电脑还是台式机。

答案3

有各种提示。一个是 DMI 数据中的“系统类型”。另一个是系统是否有电池。还有一个是处理器、芯片组、显示控制器、显示器等的类型。这些都不是万无一失的,但通过将它们结合起来,可以很容易地编写一个分类器,将系统分为“几乎肯定是笔记本电脑”、“几乎肯定是台式机/工作站”和“不确定”。

但说实话,通过技术/激活方法执行许可往往侧重于防止大规模滥用。小规模滥用更有可能通过审计、心怀不满的员工告发老板等方式来处理。

假设该软件在两台机器上均可完全运行,如果我只购买一台与工作站一样快的高端笔记本电脑,这种情况是否就变得无关紧要了?

如果您可以购买一台与您的工作站一样快的笔记本电脑,那么您拥有的一定是一台相当低端(或旧)的工作站。

答案4

用于编写软件的代码可以确定它当前在哪种类型的“底盘”上运行。

这个答案以 C# 为例。这可以确定计算机是否属于以下类型(有些似乎是重复的和/或过时的):

  • 其他
  • 未知
  • 桌面
  • 低调桌面
  • 披萨盒
  • 迷你塔式机
  • 便携的
  • 笔记本电脑
  • 笔记本
  • 手持式
  • 基座
  • 一体
  • 子笔记本
  • 节省空间
  • 饭盒
  • 主系统底盘
  • 扩展机箱
  • 副底盘
  • 总线扩展底盘
  • 外设底盘
  • 存储底盘
  • 机架式底盘
  • 密封盒PC

另外,关于我的评论,说它们似乎是重复的——这是我的观点——只要看一下这个列表,它似乎是多年来临时创建的,似乎不是梅西大学。事实上,我曾多次听到有人说,区分上述某些形式因素的必要性已不再相关或被理解(例如参见这是子笔记本的简短摘要

相关内容