【问题标题】:Enumerate Properties collection in vb.net在 vb.net 中枚举属性集合
【发布时间】:2012-12-17 21:54:43
【问题描述】:

Microsoft 的文章ManagementBaseObject.PropertiesProperty 展示了如何枚举集合中的属性

    For Each p As PropertyData In properties
        Console.WriteLine(p.Name)
        For Each q As QualifierData In p.Qualifiers
            If (q.Name.Equals("Description")) Then
                Console.WriteLine(processClass.GetPropertyQualifierValue(.Name, q.Name))
            End If 
        Next
        Console.WriteLine()
    Next 
End Function 

这篇文章http://msdn.microsoft.com/en-us/library/ms257359.aspx 演示了从 WMI 检索信息。

我想要做的是运行 WMI 查询,例如“SELECT * FROM Win32_Environment”。但我似乎无法枚举集合,因为 envVar 不是 PropertyDataCollection:

Dim query As New ObjectQuery(strQuery)
Dim searcher As New ManagementObjectSearcher(scope, query)
For Each queryObj As ManagementObject In searcher.Get()
   s = s & queryObj("Name").ToString() & ": " & queryObj("VariableValue").ToString()
Next

如何在不知道名称的情况下枚举此集合?我似乎无法让它工作,因为 queryObj 不是一个集合。

【问题讨论】:

    标签: vb.net wmi wmi-query


    【解决方案1】:

    如果我没记错的话,你的循环应该是这样的

    Dim searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Environment")
    Dim queryObj As ManagementObjectCollection = searcher.Get()
    For Each mo in queryObj
        Console.WriteLine("----------------")
        For Each prop in mo.Properties
            Console.WriteLine("{0}: {1}", prop.Name, prop.Value)
        Next
    Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      相关资源
      最近更新 更多