如何獲取有關係統中所有網絡適配器的信息? 名稱,製造商,位置(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