私のアプリは、Java を使用しているコンピューターで利用可能なすべての復元ポイント (リンク) を一覧表示する必要があります。SystemRestore クラスは、CIMV2 ではなく、デフォルトの名前空間にあります。次のコードを試したとき:
public class TestWMI {
public static void main(String args[]){
String host = "localhost";
String connectStr = String.format("winmgmts:\\\\%s\\root\\default", host);
String query = "SELECT * FROM SystemRestore";
ActiveXComponent axWMI = new ActiveXComponent(connectStr);
Variant vCollection = axWMI.invoke("ExecQuery", new Variant(query));
EnumVariant enumVariant = new EnumVariant(vCollection.toDispatch());
Dispatch item = null;
while (enumVariant.hasMoreElements()) {
item = enumVariant.nextElement().toDispatch();
String serviceName = Dispatch.call(item,"Description").toString();
System.out.println();
}
}
}
しかし、それは次のエラーで終わります:
Exception in thread "main" com.jacob.com.ComFailException: IEnumVARIANT::Next
at com.jacob.com.EnumVariant.Next(Native Method)
at com.jacob.com.EnumVariant.hasMoreElements(EnumVariant.java:68)
at TestWMI.main(TestWMI.java:28)
Java Result: 1
助けてください。