windows - 如何在没有 WMI 的情况下获得唯一的机器签名?

标签 windows uniqueidentifier system-information

我知道 question已经有人问我如何为机器生成唯一 ID,但我的问题略有不同。

我想知道是否有任何其他方法(API 调用?)来获取硬件信息而不使用 WMI。我从MSDN了解到WMI 是在 Win2000 中引入的,因此它似乎在 Win98 中不可用。我有一个应用程序甚至必须在 Win98 上运行(我知道这很糟糕,但你能做什么?)并且仍然掌握硬件信息。

最佳答案

我已经为许可项目做过几次这样的事情。对于硬盘驱动器序列号,请使用:

private static extern long GetVolumeInformation(string PathName, StringBuilder VolumeNameBuffer, UInt32 VolumeNameSize, ref UInt32 VolumeSerialNumber, ref UInt32 MaximumComponentLength, ref UInt32 FileSystemFlags, StringBuilder FileSystemNameBuffer, UInt32 FileSystemNameSize);

使用函数返回的 VolumeSerialNumber

此外,您可能已经考虑过使用 Windows 产品 ID(位于 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId)。请注意,大量 Windows XP 用户拥有盗版并共享相同的产品 key 。

关于windows - 如何在没有 WMI 的情况下获得唯一的机器签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872385/

相关文章:

.net - 在 Windows Mobile 上编程 ActiveSync

python - 我应该如何在 Windows 中设置默认 Python 版本?

python - 从 python 中的元组列表中删除唯一的元组

c# - 如何在 Mono 中收集系统信息?

python - Windows下获取系统信息(CPU速度-总RAM-显卡型号等)

c++ - 尝试通过 C++ 程序设置代理。不起作用

windows - 是否有一种简单的方法可以强制Windows使用固定的DPI值而不是当前DPI设置来计算文本范围?

android - 如何使用基于主机的卡仿真 (HCE) 将手机设置为 NFC 标签

windows - 生成唯一的机器 ID

windows - 根据用户模式故障转储找出 CPU 型号