在VB.net中获取硬件制造商和系统型号?

时间:2014-04-01 21:48:21

标签: vb.net system-information

我试图使用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

虽然这会回归"微软公司"不是"戴尔"。

2 个答案:

答案 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

希望它有所帮助。