Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WMI数组属性上的ManagementObjectSearcher_C#_Arrays_Wmi_Wql - Fatal编程技术网

C# WMI数组属性上的ManagementObjectSearcher

C# WMI数组属性上的ManagementObjectSearcher,c#,arrays,wmi,wql,C#,Arrays,Wmi,Wql,我正在运行以下代码,试图获取运行它的设备的ChassisType string wmiQuery = string.Format( "SELECT ChassisTypes FROM Win32_SystemEnclosure"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery); foreach (ManagementObject obj in searcher.Get()) 当我运

我正在运行以下代码,试图获取运行它的设备的ChassisType

string wmiQuery = string.Format(
    "SELECT ChassisTypes FROM Win32_SystemEnclosure");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
foreach (ManagementObject obj in searcher.Get())
当我运行它,并试图将其转换为字符串时,它会给我一个空字符串。当我尝试检查searcher.get()在Autos中返回的内容时。它给我一个评估超时,然后是一个异常。。。如果我让它运行,它确实会返回

我忽略了计算,因为当我尝试检查其他WMI查询时,我得到了相同的异常,我知道它们可以工作并返回所需的值。我也不知道从哪里开始,虽然这阻碍了故障排除

我认为问题在于ChassisTypes属性是一个数组。。。但我不知道如何把价值拿出来。我无法在我的“obj”managementobject上运行另一个foreach,因为managementobjects确实有一个GetEnumerator

你有什么想法吗。排序评估超时。。。或者更好。访问WMI数组属性


干杯。通过正确的谷歌搜索:P

我必须将搜索者返回的对象放入一个数组中,然后通过该数组进行foreach以获取我的值:

    var deviceType = "";
    string wmiQuery = string.Format(
        "SELECT ChassisTypes FROM Win32_SystemEnclosure");
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
    ManagementObjectCollection qCollect = searcher.Get();
    foreach (ManagementObject obj in qCollect)
    {
        Int16[] rs = (Int16[])obj["ChassisTypes"];
        foreach (var item in rs)
        { 
            if (item == 9 ||
                item == 10 ||
                item == 14)
            {
                deviceType = "Laptop";
            }
            else
            {
                deviceType = "Non-Laptop";
            }
仍然不知道为什么我在尝试查看搜索者时会出现异常。但我的问题已经解决了