我正在使用 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 有很多经验并以最好的方式检索这些值?
谢谢,
史蒂夫