加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WMI查询的select子句中的数学运算

发布时间:2020-12-15 17:26:52 所属栏目:百科 来源:网络整理
导读:在我的控制台应用程序(.NET)中,我正在执行WMI查询,如下所示: ManagementObjectSearcher query; ObjectQuery oq; ManagementObjectCollection objectCollection; try { oq = new ObjectQuery("SELECT TotalVisibleMemorySize,FreePhysicalMemory FROM Win32_
在我的控制台应用程序(.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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读