-2

如何获取序列号有 2 个很好的例子:如何在 Delphi 中获取主板 id 或序列号?

他们都为我工作(Windows 7)。但对于 2 个人来说,他们没有!

选项 1(Microsoft WMIScripting 库)返回一个无法在异常中处理的错误!(我试图在异常中使用我的代码,但没有执行)。操作系统视窗 7:

在此处输入图像描述

选项 2 (Windows XP) - 不返回任何内容:没有错误,没有序列号。

任何人都可以解释为什么会这样吗?是否有工作代码可以做到这一点?

该链接中有一条评论:“@PRUZ 你知道我的第二条评论吗?我在其他计算机上检查了相同的代码,它返回‘无’。它有什么问题?——Himadri”

谢谢!!!

4

1 回答 1

4

@maxfax,第一个示例代码在 Windows xp 中不起作用,因为使用了ItemIndex自 windows vista 以来可用的属性,有关更多详细信息,请查看本文 ( Be careful when you import the Microsoft WMIScripting Library)。第二个片段必须在任何 Windows 系统中都可以正常工作,因为直接使用属性名称访问 WMI 属性。现在,如果第二个选项没有在任何机器上检索序列号只是因为 WMI 提供程序没有公开此属性的信息。作为旁注,一些虚拟机(如 VMWARE)报告None为序列号。

更新

我刚刚在我的博客上写了一篇关于如何读取 SMBios ( Reading the SMBios Tables using Delphi) 的文章,使用这种方法可以直接从 SMBios 表中获取主板的序列号。

于 2011-07-29T22:43:42.263 回答