資源簡介
使用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?
????????????????object[]?values?=?enumVariant.next(1);
????????????????JIArray?array?=?(JIArray)?values[0];
????????????????object[]?arrayObj?=?(object[])?array.getArrayInstance();
????????????????for?(int?j?=?0;?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實現
評論
共有 條評論