在我的控制台应用程序(.NET)中,我正在执行WMI查询,如下所示:
ManagementObjectSearcher query;
ObjectQuery oq;
ManagementObjectCollection objectCollection;
try
{
oq = new ObjectQuery("SELECT TotalVisibleMemorySize, FreePhysicalMemory FROM Win32_OperatingSystem");
query = new ManagementObjectSearcher(oq);
objectCollection = query.Get();
}
catch
{
return null;
}
return objectCollection;
我正在对收集的数据进行划分,以便在我的应用程序中使用.目前它对我来说非常合适.
我正在为我的应用程序使用多个wmi查询.为了使一个方法从config执行我所有的wmi查询,我需要在查询的select子句中进行除法.
我需要执行如下WMI查询:
SELECT ((TotalVisibleMemorySize)/1024) as TotalVisibleMemorySize1, ((FreePhysicalMemory)/1024) as FreePhysicalMemory1 FROM Win32_OperatingSystem
对于此查询,我收到错误无效的查询.
此查询中是否存在语法错误,或者是否无法在WMi查询的select子句中进行除法?
最佳答案 似乎WMI不支持复杂查询.您最好的选择是捕获wmi结果并根据需要进行转换:
foreach (ManagementObject mo in objectCollection)
{
Console.WriteLine("Total Memory = {0} MB",
Convert.ToInt32(mo.GetPropertyValue("TotalVisibleMemorySize"))/1024);
}