资源简介
使用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
- 上一篇:java连接mysql数据库框架
- 下一篇:蜘蛛纸牌 java实现
相关资源
- 蜘蛛纸牌 java实现
- java连接mysql数据库框架
- java五子棋网络版
- java五子棋源码人人
- 二期结业项目易买网购物车
- 首次适应法动态分区存储管理(java)
- 彻底搞定java文件上传.txt
- Java抓包程序
- 基于Java的扫雷游戏
- 带界面的DES加密解密java源码
- 商品库存管理系统java源代码
- 企业快信java.rar
- java 通讯录
- weixin-java-tools-1.3.3(jdk1.6版本编译)
- 斗鱼获取实时弹幕/java代码
- 图书馆管理系统jsp+mysql+Servlet+javaBea
- 呕心沥血的java复杂聊天室(包括自定
- java实现霍夫曼(huffman)树的压缩和解
- JAVA管程解决哲学家就餐问题
- 客户信息管理系统
- java web开发简单留言板
- java新手8个小项目
- Java实现TXT文件转图片
- java图像处理方法:灰度化,二值化,
- ssd8 exam1 代理服务器 java
- eclipse2019 mac版
- Java基础 用数组写的学生管理系统
- 试题管理系统 JAVA
- java页面置换算法的模拟实现
- java噪声函数库
评论
共有 条评论