Tôi đã có một lớp mà kéo thông tin mô hình (thông tin phần cứng) cho một mã máy tính cục bộ là như vậy:Nhận thẻ dịch vụ từ Máy Dell sử dụng .net?
Imports System.Management
Public Class clsWMI
Private objOS As ManagementObjectSearcher
Private objCS As ManagementObjectSearcher
Private objMgmt As ManagementObject
Private m_strComputerName As String
Private m_strManufacturer As String
Private m_StrModel As String
Private m_strOSName As String
Private m_strOSVersion As String
Private m_strSystemType As String
Private m_strTPM As String
Private m_strWindowsDir As String
Public Sub New()
objOS = New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
objCS = New ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")
For Each objMgmt In objOS.Get
m_strOSName = objMgmt("name").ToString()
m_strOSVersion = objMgmt("version").ToString()
m_strComputerName = objMgmt("csname").ToString()
m_strWindowsDir = objMgmt("windowsdirectory").ToString()
Next
For Each objMgmt In objCS.Get
m_strManufacturer = objMgmt("manufacturer").ToString()
m_StrModel = objMgmt("model").ToString()
m_strSystemType = objMgmt("systemtype").ToString
m_strTPM = objMgmt("totalphysicalmemory").ToString()
Next
End Sub
Public ReadOnly Property ComputerName()
Get
ComputerName = m_strComputerName
End Get
End Property
Public ReadOnly Property Manufacturer()
Get
Manufacturer = m_strManufacturer
End Get
End Property
Public ReadOnly Property Model()
Get
Model = m_StrModel
End Get
End Property
Public ReadOnly Property OsName()
Get
OsName = m_strOSName
End Get
End Property
Public ReadOnly Property OSVersion()
Get
OSVersion = m_strOSVersion
End Get
End Property
Public ReadOnly Property SystemType()
Get
SystemType = m_strSystemType
End Get
End Property
Public ReadOnly Property TotalPhysicalMemory()
Get
TotalPhysicalMemory = m_strTPM
End Get
End Property
Public ReadOnly Property WindowsDirectory()
Get
WindowsDirectory = m_strWindowsDir
End Get
End Property
End Class
Bất kỳ khả năng để có được một thẻ dịch vụ từ WMI? Từ hình thức bên client tôi hiển thị giá trị như sau:
Dim objWMI As New clsWMI()
With objWMI
Debug.WriteLine("Computer Name = " & .ComputerName)
Me.Label1.Text = "Name: " & .ComputerName
Debug.WriteLine("Computer Manufacturer = " & .Manufacturer)
Me.Label2.Text = "Manufacturer: " & .Manufacturer
Debug.WriteLine("Computer Model = " & .Model)
Me.Label3.Text = "Model: " & .Model
Debug.WriteLine("OS Name = " & .OsName)
Me.Label4.Text = "OS Name: " & .OsName
Debug.WriteLine("OS Version = " & .OSVersion)
Me.Label5.Text = "OS VERSION: " & .OSVersion
Debug.WriteLine("System Type = " & .SystemType)
Me.Label6.Text = "System type = " & .SystemType
Debug.WriteLine("Total Physical Memory = " & .TotalPhysicalMemory)
Me.Label7.Text = "Memory: " & .TotalPhysicalMemory
Debug.WriteLine("Windows Directory = " & .WindowsDirectory)
Me.Label8.Text = "Win Directory: " & .WindowsDirectory
End With
Hi Jason tôi đã làm một cái gì đó như thế này: OBJS = New ManagementObjectSearcher ("SELECT * FROM Win32_SystemEnclosure") Sau đó, tôi đã có thể kéo số serial như vậy: Đối Mỗi objMgmt Trong objS.Get m_strSerial = objMgmt ("serialnumber"). ToString() Tiếp theo Tôi đoán câu hỏi của tôi là khác nhau giữa WIN32_BIOS và Win32_SystemEnclosure là gì? Tôi thậm chí chạy nó trên một máy xây dựng lại và nó hoạt động ... – JonH
Từ những gì tôi có thể nói, Win32_SsytemEnclosure được dựa trên hộp vật lý mà máy tính được xây dựng trong, trong khi Win32_BIOS là chip trên bo mạch chủ. Lý thuyết của tôi là nếu bạn di chuyển một bo mạch chủ từ trường hợp ban đầu của nó sang trường hợp khác, thì các thẻ dịch vụ bạn nhận được từ BIOS và SystemEnclosure có thể khác nhau, nhưng tôi chưa thử nghiệm điều này. Nó có thể an toàn để giả định rằng số serial từ một trong hai lớp sẽ là chính xác. –
Cảm ơn người đàn ông làm việc một điều trị và có ý nghĩa. Tuyệt vời :) – JonH