• 大小: 827KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Java
  • 标签: wmi  j-Interop  java  windows  

资源简介

使用j-Interop实现java连接wmi获取windows系统信息的例子 可以直接导入MyEclipse运行,能够获取CPU,主板,显卡,声卡,网卡,以及CPU使用率,内存使用率等

资源截图

代码片段和文件信息



import org.jinterop.dcom.common.JIException;
import org.jinterop.dcom.common.JISystem;
import org.jinterop.dcom.core.*;
import org.jinterop.dcom.impls.JIobjectFactory;
import org.jinterop.dcom.impls.automation.IJIDispatch;
import org.jinterop.dcom.impls.automation.IJIEnumVariant;

import java.net.UnknownHostException;
import java.util.logging.Level;

public class WmiService {

    private JIComServer m_ComStub = null;
    private IJIComobject m_Comobject = null;
    private IJIDispatch m_Dispatch = null;
    private String m_Address = null;
    private JISession m_Session = null;
    private IJIDispatch m_WbemServices = null;

    private static final String WMI_CLSID = “76A6415B-CB41-11d1-8B02-00600806D9B6“;
    private static final String WMI_PROGID = “Wbemscripting.SWbemLocator“;



    public WmiService(String address) {
        JISystem.setAutoRegisteration(true);
        JISystem.getLogger().setLevel(Level.WARNING);
        m_Address = address;
    }

    public String[]  query(String strQuery) {

        System.out.println(“query:“ + strQuery);

        JIVariant results[] = new JIVariant[0];
        try {
            results = m_WbemServices.callMethodA(“ExecQuery“ new object[]{new JIString(strQuery) JIVariant.OPTIONAL_PARAM() JIVariant.OPTIONAL_PARAM() JIVariant.OPTIONAL_PARAM()});
            IJIDispatch wOSd = (IJIDispatch) JIobjectFactory.narrowobject((results[0]).getobjectAsComobject());

            int count = wOSd.get(“Count“).getobjectAsInt();

            IJIComobject enumComobject = wOSd.get(“_NewEnum“).getobjectAsComobject();
            IJIEnumVariant enumVariant = (IJIEnumVariant) JIobjectFactory.narrowobject(enumComobject.queryInterface(IJIEnumVariant.IID));

            IJIDispatch wbemobject_dispatch = null;
            String[] strs = new String[count];

            for (int c = 0; c < count; c++) {

                object[] values = enumVariant.next(1);
                JIArray array = (JIArray) values[0];
                object[] arrayObj = (object[]) array.getArrayInstance();
                for (int j = 0; j < arrayObj.length; j++) {
                    wbemobject_dispatch = (IJIDispatch) JIobjectFactory.narrowobject(((JIVariant) arrayObj[j]).getobjectAsComobject());
                }

                String str = (wbemobject_dispatch.callMethodA(“GetobjectText_“ new object[]{1}))[0].getobjectAsString2();
                System.out.println(“(“ + c + “):“);
                System.out.println(str);
//                System.out.println();
                strs[c] = str;
            }
            return strs;


        } catch (JIException e) {
            e.printStackTrace();
        }
        return null;
    }

    public void connect(final String domain final String username final String password) {
        try {

            m_Session = JISession.createSession(domain username password);
            m_Session.useSessionSecurity(true

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        476  2014-04-25 15:50  WmiTest1\.classpath

     文件        384  2014-04-25 15:50  WmiTest1\.project

     文件        629  2014-04-25 15:50  WmiTest1\.settings\org.eclipse.jdt.core.prefs

     文件       5739  2014-04-25 15:50  WmiTest1\bin\WmiService.class

     文件     406445  2014-04-25 15:50  WmiTest1\lib\j-interop.jar

     文件     122768  2014-04-25 15:50  WmiTest1\lib\j-interopdeps.jar

     文件     380196  2014-04-25 15:50  WmiTest1\lib\jcifs-1.2.19.jar

     文件       5987  2014-04-25 15:50  WmiTest1\src\WmiService.java

     目录          0  2014-04-25 15:49  WmiTest1\.settings

     目录          0  2014-04-25 15:49  WmiTest1\bin

     目录          0  2014-04-25 15:49  WmiTest1\lib

     目录          0  2014-04-25 15:49  WmiTest1\src

     目录          0  2014-04-25 15:49  WmiTest1

----------- ---------  ---------- -----  ----

               922624                    13


评论

共有 条评论