如何获取有关系统中所有网络适配器的信息? 名称,制造商,位置(PCI,slot2),驱动程序版本。 其实我使用WMI检索名称和制造商,但找不到位置和驱动程序版本。 我只需要C++解决方案而不是MFC/clr。 winapi功能? wmi(想念什么)? 另外我需要检索系统上的.NET版本。如何在C++中获取有关网络适配器的信息?
回答
关于你第二个请求:“我需要在系统中检索.NET版本”
这可以通过Unmanaged Hosting API来完成。如果您使用的是.NET 4.0,那么您可以使用新的ICLRMetaHost
界面。 EnumerateInstalledRuntimes()
函数将为您提供所有当前安装的.NET运行时。
你也可以使用WMI来做到这一点,但它需要更多的工作。在安装.NET时,会创建一个WMI Win32_Product
对象。使用WMI Studio,您可以连接到root\CIMV2
(Windows 7),导航到CIM_Product\Win32_Product
,并查看所有安装的MSI应用程序的所有WMI对象。您将能够在那里找到所有已安装的框架实例,并确定您希望如何在代码中识别它们。
只要提到您可以从WMI就网络适配器驱动程序获得什么。我假设你正在使用Win32_NetworkAdapter
对象。该对象上的ServiceName
属性与Win32_SystemDriver
对象的Name
属性关联,该对象表示用于该适配器的驱动程序。 Win32_SystemDriver
对象确实没有版本信息,但它们确实有到实际文件二进制文件的路径。例如,我的无线网络适配器正在使用此驱动程序C:\Windows\system32\DRIVERS\athr.sys
。一旦你有完整的驱动程序路径,你可能能够通过另一种机制获得文件的版本。
不错,谢谢你。我通过WMI找到了.Net和systemDrivers。现在我只需要到网络适配器(PCI,slot3 ...)的位置,如果这个信息是可用的。 – shake 2010-09-20 06:32:35
我不知道WMI是否暴露了这个问题,但是位置信息是通过SPARP_LOCATION_INFORMATION通过SetupAPI函数SetupDiGetDeviceRegistryProperty从注册表中获取的。
- 1. 获取有关WiFi网络的信息
- 2. 获取有关在Windows XP SP3安装的网络适配器
- 3. 如何从C中获取网络适配器名称?
- 4. 如何获取有关无线网络设备的信息
- 5. 如何获取黑莓的NeighboringCell信息(与网络信息有关)
- 6. 如何获取WEC2013中适配器的网络掩码和默认网关
- 7. 获取网络接口信息C++
- 8. 获取C#中网络适配器的原始MAC地址#
- 9. Android:从适配器获取信息
- 10. 所有网络适配器的驱动程序文件信息[C#]
- 11. 如何获得有关PSN ID的信息PlayStation网络
- 12. C++:获取Vista上的网络适配器的MAC地址?
- 13. C++(Windows)获取当前运行进程的网络适配器
- 14. 有关网络发现API的信息
- 15. 获取信息的数据从网络
- 16. 如何获取有关C#中当前运行时的信息?
- 17. 提供商如何获取有关通过Wi-Fi适配器共享互联网的信息?
- 18. 如何获取默认网络适配器的主机广播地址? C#
- 19. 如何使用tcpdump获取网络中的设备信息?
- 20. 如何获取iOS 5中的网络信息?
- 21. 如何在iOS上获取网络接口信息(例如'en0')?
- 22. 如何在Android设备中获取网络适配器的名称
- 23. 如何使用get-netipaddress和where-object获取特定的网络适配器详细信息
- 24. 在.NET中以编程方式检索断开的网络适配器信息
- 25. 获取网络接口信息
- 26. Playstation网络API获取信息?
- 27. 获取低级iPhone网络信息
- 28. PyWin32获取网络信息/统计
- 29. C#如何获取触发器信息
- 30. 如何获取有关C函数的调用者的信息?
不要将多个问题(.NET版本和网络适配器)混合在一起,这对于可搜索性而言是不利的,并且会导致只回答两个问题之一的答案。改为提出单独的问题。 – 2010-09-20 02:11:49
好的..我会在将来更加小心.. – shake 2010-09-20 06:26:30