문제

현재 Java-Base Cross-Platform 소프트웨어 대리점에서 일하고 있으며 사용자가 손 앞에 모든 설정을 수행하지 못하도록 원시 OS 메커니즘을 사용하기로 선택했습니다.

SSH2 및 JACOB 용 JSCH를 Jaker 용으로 선택했습니다. Jacob이 Windows를 시작한 호스트로 제한하지만 그것은 내가 함께 살 수있는 것입니다.

Jacob 주위에 래퍼를 쓰고 WMI를 통해 대상과 이야기하기 위해 네이티브 메커니즘을 사용하여 약간의 문제로 실행 중입니다. 주어진 Win32_ 클래스 객체에 사용할 수있는 모든 속성 목록을 검색하려고 시도하고 있으며 수행 할 수 없었습니다.

이 링크는 vb http : //www.vbsedit로 표시 할 수 있습니다. .com / scripts / misc / wmi / scr_1333.asp

누군가를 알아낼 수 있었는지 궁금해하고있었습니다.

편집 : (코드 스 니펫)

item = enumVariant.nextElement().toDispatch();
            //Dispatch.class returns a variant which can convert to java form
            String serviceName = Dispatch.call(item, "Name").toString();
            String servicePath = Dispatch.call(item,"PathName").toString();
            int servicePID = Dispatch.call(item,"ProcessId").getInt();
            //System.out.println("Service: "+serviceName+" ServicePath: "+servicePath+" PID: "+servicePID);
            //System.out.println(serviceName+" "+servicePath+" "+servicePID);
            list.add(serviceName+" "+servicePID);
.

코드는 개별 속성을 요구할 수 있지만 모든 속성을 요청하는 것이 좋습니다.

도움이 되었습니까?

해결책

여기에 귀하의 질문에 대한 답변이 있습니다.나는 당신의 문제가 어디에 있는지 모르기 때문에 나는 그렇게 희망합니다.나는 답변자가 모든 것을 쓸 수 있도록 답변을 요구하는 대신 코드의 일부를 제공해야한다고 생각합니다.

이것은 또한 더 일반적인 문제에 대한 답변 일 수 있습니다. 방금 배웠습니다 :
컬렉션의 모든 항목을 열거하는 방법 For Each 구현
EnumVariant Jacob 클래스를 사용해야합니다.

import com.jacob.activeX.*;
import com.jacob.com.*;

public class testJacob {
  public static void main(String args[]) {
    String sMoniker = "winmgmts:{impersonationLevel=impersonate}!" +
      "\\\\.\\root\\cimv2";
    Dispatch dServ = new Dispatch(sMoniker);
    Variant v = Dispatch.call(dServ, "SubclassesOf");
    // SWbemObjectSet object
    // http://msdn.microsoft.com/en-us/library/aa393762%28v=vs.85%29.aspx
    Dispatch objSet = v.getDispatch();
    System.out.println("object count: " + objSet.get(objSet, "count"));
    int cObj = 0;
    EnumVariant en = new EnumVariant(objSet);
    while (en.hasMoreElements()) {
      // SWbemObject object
      // http://msdn.microsoft.com/en-us/library/aa393741(v=vs.85).aspx
      Dispatch dItem = en.nextElement().getDispatch();
      Dispatch dPath = Dispatch.get(dItem, "Path_").getDispatch();
      String sClass = Dispatch.get(dPath, "Class").getString();
      System.out.println("path: " + sClass);
      Dispatch dObj = Dispatch.call(dServ, "get", sClass).getDispatch();
      Dispatch dProps = Dispatch.call(dObj, "Properties_").getDispatch();
      EnumVariant enProp = new EnumVariant(dProps);
      while (enProp.hasMoreElements()) {
        Dispatch dProp = enProp.nextElement().getDispatch();
        String sProp = Dispatch.get(dProp, "name").getString();
        System.out.println("property: " + sProp);
      }
      if (++cObj >= 5)
        break;
    }
  }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top