Delphi:获取主板序列号时的错误

时间:2011-07-29 22:07:52

标签: delphi serial-number motherboard

如何获得序列号有两个很好的例子:How to get motherboard id or serial number in Delphi?

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

选项1(Microsoft WMIScripting Library)返回一个无法在异常中处理的错误! (我试图在异常中使用我的代码,但没有执行)。 OS Windows 7:

enter image description here

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

任何人都可以解释它为什么并且是否有工作代码来执行此操作?

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

感谢!!!

1 个答案:

答案 0 :(得分:4)

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

<强>更新

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