【问题标题】:Finding Chassis Type Using VB.Net使用 VB.Net 查找机箱类型
【发布时间】:2014-03-25 15:37:26
【问题描述】:

我正在尝试使用 VB.NET 查找各种计算机的机箱类型。这将成为使用某些标准来确定例程的自动化测试程序的一部分。我使用的代码如下

'REFERENCING WIN32_SystemEnclosure
Dim qwin32SystemEnclosure As New SelectQuery("Win32_SystemEnclosure")
Dim searchse As New ManagementObjectSearcher(qwin32SystemEnclosure)
Dim infose As New ManagementObject

For Each infose In searchse.Get
    strCOMM = infose("chassisTypes").ToString
Next

结果我收到了system.Uint16[]。我知道我使用的是正确的win_32 class。我相信输出到字符串有问题,但我不知道如何纠正。作为参考,正确的输出应该是 10。

感谢您的帮助!

编辑:我遇到了类似问题...我无法像使用 uint16 值那样将 uint32 转换为字符串或整数。这是我的代码

Imports System.Management
Public Class frmBatterytest
Dim strDesigncap As String
Dim strCurrentcap As String
Dim strResult As String = 0
Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
    ' REFERENCING WIN32_BATTERY
    Dim qwin32 As New SelectQuery("Win32_Battery")
    Dim search As New ManagementObjectSearcher(qwin32)
    Dim info As New ManagementObject

    For Each info In search.Get
        strDesigncap = info("DesignCapacity")(0).ToString
        strCurrentcap = info("FullChargeCapacity")(0).ToString
    Next

    lblDCv.Text = strDesigncap
    lblCCv.Text = strCurrentcap
    lblTRv.Text = strCurrentcap / strDesigncap * 100 & "%"

End Sub

Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    Me.Close()
End Sub

End Class

【问题讨论】:

  • 你得到了什么结果?你有错误吗?请详细说明...

标签: vb.net winapi int wmi output


【解决方案1】:

"system.Uint16[]" 是在数组类型上调用ToString 的结果,它不会自动格式化数组中的值 并将它们作为字符串返回给您。

拉一个特定的值:

 strCOMM = infose("chassisTypes")(0).ToString

Join() 获取分隔字符串中的所有值。

【讨论】:

  • 谢谢,感谢您的帮助。我对不同的数据类型并不精通,最初没有意识到它被格式化为数组。
  • 我遇到了更多麻烦。我编写了一个测试程序来尝试一些我想添加到我的大型测试程序中的代码,但是现在我在将 uint32 转换为字符串时遇到了问题。用于提取 uint16 的第一个条目的相同方法不起作用。任何帮助表示赞赏。谢谢!
  • 如果你有一个 uint 变量而不是一个数组只是 somestring = theuint.ToString
  • 我相信这就是我想要做的。我把代码贴在上面。我得到的错误是:“Microsoft.VisualBasic.dll 中发生了'System.NullReferenceException' 类型的未处理异常附加信息:对象变量或未设置块变量。”我试图通过 MSDN 找到答案,但它说只使用“.tostring”将 uint 转换为字符串。我不确定我做错了什么。
  • 如果info("Description").ToString 给你一个空引用异常然后info("Description") 是空的,你需要测试一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-16
  • 2019-04-13
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多