我需要在多个进程的应用程序中访问主板标识(序列号、制造商等)。我已经能够使用 WMI 成功查询此信息,但我正在寻找替代方案。
如果您想了解情况:
我的一些应用程序行为根据硬件配置或是否设置了特定环境变量(用于测试目的)而有所不同。
bool IsVideoCardDisplay = ( getenv("Z_VI_DISPLAY") || !QueryWmiForSpecialBoard() ) ? false : true;
设置环境变量后,不需要 WMI 查询 - 应用程序可以正常运行。但是,当环境变量不存在时,我的应用程序的某些组件在需要进行 WMI 查询时无法启动。我怀疑 WMI 调用可能会产生一些副作用(每个进程最多只发生一次。这就是我寻求替代方法的原因。
在 Vista+ 中您可以使用GetSystemFirmwareTable用于访问 SMBIOS 表并解析它们以获得[可能可用]序列号和其他标识字符串和值的 API。
特别是,您可以访问主板数据,包括供应商和序列号:
Intel Corporation
DZ77BH-55K
AAG39018-400
BQBH206600DT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)