首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c++中获取有关网络适配器的信息?

如何在c++中获取有关网络适配器的信息?
EN

Stack Overflow用户
提问于 2010-09-20 09:04:27
回答 2查看 1.9K关注 0票数 0

如何获取系统中所有网卡的信息?名称、制造商、位置(PCI、slot2)、驱动程序版本。实际上,我检索了WMI的名称和制造商,但我找不到位置和驱动程序版本。我只需要c++解决方案,不需要MFC/clr。winapi函数?wmi (遗漏了什么)?此外,我需要检索系统上的.NET版本。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-20 09:23:43

关于您的第二个请求:“我需要在系统上检索.NET版本”

这可以通过Unmanaged Hosting API完成。如果你使用的是.NET 4.0,那么你可以使用新的ICLRMetaHost接口。EnumerateInstalledRuntimes()函数将为您提供当前安装的所有.NET运行时。

您也可以使用WMI来完成此操作,但这需要做更多的工作。安装.NET时,将创建一个WMI Win32_Product对象。使用WMI Studio,您可以连接到root\CIMV2 (Windows7),导航到CIM_Product\Win32_Product,并查看所有安装了MSI的应用程序的所有WMI对象。您将能够在那里找到所有已安装的框架实例,并确定如何在代码中标识它们。

只需提及您可以从WMI获得的有关您的网络适配器的驱动程序。我假设您使用的是Win32_NetworkAdapter对象。该对象的ServiceName属性被绑定到Win32_SystemDriver对象的Name属性,该对象表示用于该适配器的驱动程序。Win32_SystemDriver对象没有版本信息,但它们有指向实际文件二进制文件的路径。例如,我的无线网络适配器正在使用这个驱动程序C:\Windows\system32\DRIVERS\athr.sys。一旦您有了完整的驱动程序路径,您就可以通过另一种机制获取该文件的版本。

票数 1
EN

Stack Overflow用户

发布于 2010-09-21 05:42:34

我不知道WMI是否公开了这一点,但是位置信息是通过SPDRP_LOCATION_INFORMATION的SetupAPI函数SetupDiGetDeviceRegistryProperty从注册表获取的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3748127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档