我试图使用vb.net来获取硬件制造商(例如"戴尔")和型号(例如" Latitude E6320")但是我'没有运气。
我已经尝试了
Dim opSearch As New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
Dim opInfo As ManagementObject
For Each opInfo In opSearch.Get()
Return opInfo("manufacturer").ToString()
Next
虽然这会回归"微软公司"不是"戴尔"。
答案 0 :(得分:3)
您正在轮询错误的WMI类/配置单元。当然微软是操作系统制造商;你需要的是Win32_ComputerSystem
:
Imports System.Management
cs = New ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")
For Each objMgmt In cs.Get
_Manufacturer = objMgmt("manufacturer").ToString()
_Model = objMgmt("model").ToString()
_SystemType = objMgmt("systemtype").ToString
_totalMem = objMgmt("totalphysicalmemory").ToString()
Next
制造商将会像“戴尔,公司”这样的东西,模型出现在我的位置,但已知有时包括内部子模型标识符。系统类型在我的网站上以“基于x64的PC”形式返回。
MS有一个WMI查询构建器可以帮助fnd和使用正确的查询,尽管它生成了非常冗长的代码。
答案 1 :(得分:1)
在控制台应用程序中试一试。只需记住将System.Management引用添加到项目中。您需要访问Win32_ComputerSystem而不是Win32_OperatingSystem。
Sub Main()
Dim objCS As Management.ManagementObjectSearcher
Dim manufacturerName As String
'objOS = New Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
objCS = New Management.ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")
For Each objMgmt In objCS.Get
manufacturerName = objMgmt("manufacturer").ToString()
Next
Debug.WriteLine("Manufacturer: " & manufacturerName)
End Sub
希望它有所帮助。