我正在研究一个项目,而我的问题是,当我尝试将主板序列号完全清空时。
file_get_contents()
HWID - processorid是okey,但我真的想要主板串口,因为之后我将它放入一个字符串并将其发布到远程主机。
为什么我没有"序列号"?谢谢!
答案 0 :(得分:0)
并非所有数据都适用于所有系统。在这种情况下,在您要查找的文本之前可能存在其他数据,这会阻止提取字符串。 WMI非常慢,所以只需查询你的内容(vs SELECT *
)就可以加快速度。
其中一些事情应该用于释放资源,你应该检查一些事情,以确保它们在使用之前不是null:
Dim mboardstr As String = ""
Dim query As String = "Select SerialNumber From Win32_BaseBoard"
Using mbs As ManagementObjectSearcher = New ManagementObjectSearcher(query)
For Each mo As ManagementObject In mbs.Get
For Each pd As PropertyData In mo.Properties
' should be only one
If pd.Name = "SerialNumber" Then
' value is object, test for Nothing
If pd.Value IsNot Nothing Then
mboardstr = pd.Value.ToString
End If
Exit For
End If
Next
Next
End Using
您还可以设置断点,并检查pd.Value
以查看是否存在前导nuls或其他不可打印的控制字符(非常常见)。你所追求的可能是"背后"它们。