如何在不使用WMI的情况下使用C ++获取BIOS制造商和型号?

时间:2009-06-12 19:38:25

标签: bios

我们正在运行32位和64位的Windows XP专业版服务包3。我们使用WMI来获取BIOS制造商和型号,但我们真的更喜欢使用Win32 API或汇编语言或WMI或COM之外的其他方法。我们非常欢迎代码示例。

4 个答案:

答案 0 :(得分:3)

您可以在SMBIOS内存中进行映射并进行解析。您想要的大部分信息都在那里。这可以通过任何可以访问系统内存映射原语的语言来完成。

此外,此document包含有关可用于查询SMBIOS的Win32函数的信息。

答案 1 :(得分:2)

它位于HKEY_LOCAL_MACHINE / HARDWARE / DESCRIPTION / System的注册表中

您有SystemBiosVersion,SystemBiosDate等

此外,还有一个名为BIOS的子键,它有更多信息,如BIOSVendor和BIOSVersion。

根据谁构建系统,您还应该能够获得BaseBoardManufacturer和其他很酷的信息。

<强>更新

您可以查看this link。这是VB代码。他们试图从注册表中读取它,但是失败后又回退到从内存地址中提取字符串数据。在这种情况下,版本为&amp; HFE061,日期为&amp; HFFFF5。

答案 2 :(得分:0)

DmiDecode for Windows可以做到这一点。

答案 3 :(得分:0)

codeproject中有一篇文章,其源代码使用API​​调用GetSystemFirmwareTable来检索SMIBIOS信息。链接:http://www.codeproject.com/KB/system/SMBIOS_Peek.aspx