【发布时间】:2009-11-30 01:30:14
【问题描述】:
我正在使用 JACOB 通过 WMI 访问系统信息。我在网上没有找到太多关于 WMI 和 Jacob 的文档,我想知道是否可以帮助我提高代码效率。
代码如下:
ActiveXComponent mActiveXWMI = new ActiveXComponent("winmgmts:\\\\localhost\\root\\CIMV2");
String query = "SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name='_Total'";
Variant vCollection = mActiveXWMI.invoke("ExecQuery", new Variant(query));
EnumVariant enumVariant = new EnumVariant(vCollection.toDispatch());
Dispatch item = null;
while (enumVariant.hasMoreElements()) {
item = enumVariant.nextElement().toDispatch();
cpuUsage = Double.parseDouble(Dispatch.call(item, "PercentProcessorTime").toString());
}
正如您所见,仅针对一项循环遍历集合似乎没有多大意义。我想只查询查询语句中的一列,并尽可能快速有效地从中获取结果,并且开销尽可能少。
有没有人对 JACOB 有丰富的经验并以尽可能好的方式检索这些值?
谢谢,
史蒂夫
【问题讨论】: