【问题标题】:Monitor serial number is not returned vb.net监视器序列号不返回 vb.net
【发布时间】:2015-12-21 02:26:22
【问题描述】:

我正在使用下面的 vb.net 代码来尝试获取网络上任何计算机的显示器序列号。该代码适用于本地计算机,但远程计算机的结果为 0。但是,使用相同的代码逻辑,我可以在远程计算机上获取其他值,例如 ManufacturerName。我运行了一个 WMI 代码创建器,我也得到了 0 作为远程计算机的结果。使用 vbscript 我可以获得正确的序列号,所以我知道 vb 代码的结果是错误的。我将不胜感激。

 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Dim objWMIService, colItems As Object
    Dim strComputer As String, serialNum As String, instanceName As String
    strComputer = "TDS57771-CCU"

    objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\wmi")

    colItems = objWMIService.ExecQuery("SELECT * FROM WMIMonitorID")

    For Each objItems In colItems
        serialNum = ""
        If objItems.SerialNumberID Is Nothing Then
            MsgBox("XXX")
        Else
            'arrSerialNumberID = objItems.SerialNumberID()
            For Each arrValue As UInt16 In objItems.SerialNumberID
                serialNum = serialNum & Chr(arrValue)

            Next

        End If
        MsgBox(serialNum)
    Next
End Sub

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    好吧,最后我找不到使用 WMIMonitorId 类从 .NET 应用程序获取远程计算机序列号的方法。但是,我需要那个值。所以,我从https://www.itsupportguides.com/vbs-scripts/vbs-script-get-monitor-serial-number-remotely/ 得到了一个非常好的 vbs 脚本。不得不说作者做的非常好。因此,我从我的 visuaL 基本应用程序中调用该脚本,将计算机名称作为参数发送,然后等待 vbscript 完成。我还更改了 sript 以允许它更新我的访问数据库。这样,每次从我的App中将一台新电脑输入数据库,我也可以得到它的监控信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多