Java =枚举数。下一个(0,1); 如果(result.length==0){ 打破 } checkRC(结果[0].Get(“Caption”,0,pVal,pType,plFlavor)); System.out.println(“-----------”+
=枚举数。下一个(0,1); 如果(result.length==0){ 打破 } checkRC(结果[0].Get(“Caption”,0,pVal,pType,plFlavor)); System.out.println(“-----------”+pVal.getValue()+“-----------”; OleAuto.INSTANCE.VariantClear(pVal); checkRC(结果[0].Get(“CapabilityDescriptions”,0,pVal,pType,plFlavor)); SAFEARRAY SAFEARRAY=(SAFEARRAY)pVal.getValue(); for(int i=safeArray.getLBound(0);iJava =枚举数。下一个(0,1); 如果(result.length==0){ 打破 } checkRC(结果[0].Get(“Caption”,0,pVal,pType,plFlavor)); System.out.println(“-----------”+,java,wmi,jna,Java,Wmi,Jna,=枚举数。下一个(0,1); 如果(result.length==0){ 打破 } checkRC(结果[0].Get(“Caption”,0,pVal,pType,plFlavor)); System.out.println(“-----------”+pVal.getValue()+“-----------”; OleAuto.INSTANCE.VariantClear(pVal); checkRC(结果[0].Get(“CapabilityDescriptions”,0,pVal,pTyp
public static void main(String[] args) throws IOException, InterruptedException {
Ole32.INSTANCE.CoInitializeEx(null, Ole32.COINIT_MULTITHREADED);
// Connect to the server
Wbemcli.IWbemServices svc = WbemcliUtil.connectServer("ROOT\\CIMV2");
// Send query
try {
Wbemcli.IEnumWbemClassObject enumerator = svc.ExecQuery("WQL", "SELECT Caption, Capabilities, CapabilityDescriptions FROM Win32_DiskDrive",
Wbemcli.WBEM_FLAG_FORWARD_ONLY | Wbemcli.WBEM_FLAG_RETURN_IMMEDIATELY, null);
try {
IWbemClassObject[] result;
VARIANT.ByReference pVal = new VARIANT.ByReference();
IntByReference pType = new IntByReference();
IntByReference plFlavor = new IntByReference();
while(true) {
result = enumerator.Next(0, 1);
if(result.length == 0) {
break;
}
COMUtils.checkRC(result[0].Get("Caption", 0, pVal, pType, plFlavor));
System.out.println("---------" + pVal.getValue() + "-------------");
OleAuto.INSTANCE.VariantClear(pVal);
COMUtils.checkRC(result[0].Get("CapabilityDescriptions", 0, pVal, pType, plFlavor));
SAFEARRAY safeArray = (SAFEARRAY) pVal.getValue();
for(int i = safeArray.getLBound(0); i<=safeArray.getUBound(0); i++) {
System.out.println("\t" + safeArray.getElement(i));
}
OleAuto.INSTANCE.VariantClear(pVal);
COMUtils.checkRC(result[0].Get("Capabilities", 0, pVal, pType, plFlavor));
safeArray = (SAFEARRAY) pVal.getValue();
for(int i = safeArray.getLBound(0); i<=safeArray.getUBound(0); i++) {
System.out.println("\t" + safeArray.getElement(i));
}
OleAuto.INSTANCE.VariantClear(pVal);
result[0].Release();
}
} finally {
// Cleanup
enumerator.Release();
}
} finally {
// Cleanup
svc.Release();
}
Ole32.INSTANCE.CoUninitialize();
}