JavaScript 取得客戶端電腦硬體及系統資訊
透過WMI實現取得客戶端電腦硬體及系統資訊:
複製程式碼
複製程式碼
複製程式碼
程式碼如下:
function getSysInfo(){
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer( );
//CPU資訊
var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item();
var cpuType=cpu.Name,hostName=cpu.SystemName ;
//記憶體資訊
var memory = new Enumerator (service.ExecQuery("SELECT * FROM Win32_PhysicalMemory"));
for (var mem=[],i=0;!memory.atEnd( );memory.moveNext()) mem[i ]={cap:memory.item().Capacity/1024/1024,speed:memory.item().Speed}
//系統資訊
var system =new Enumerator (service.ExecQuery("SELECT * FROM Win32_ComputerSystem")).item();
var physicMenCap=Math.ceil(system.TotalPhysicalMemory/1024/1024),curUserceil(system.TotalPhysicalMemory/1024/1024),curUser=system.system,cpuCount=. NumberOfProcessors
return {cpuType:cpuType,cpuCount:cpuCount,hostName:hostName,curUser:curUser,memCap:physicMenCap,mem:mem}
}
拚這幾個部分:
先透過new ActiveXObject ("WbemScripting.SWbemLocator"); 存取到WbemScripting物件。
透過locator.ConnectServer(".");連接我們本地電腦(.代表本地電腦,當然
也可以存取其他電腦)。
透過service.ExecQuery("SELECT * FROM Win32_Processor")這個類似sql的語句(其實系統資訊也是儲存在計算中一個類似資料庫的檔案中)取得我們需要的物件的記錄集。
透過new Enumerator來建立一個可列舉的對象,下面就可以遍歷取資訊了。
注意:運行的前提是要修改瀏覽器安全設置,「允許對未標記為可安全執行的ActiveX
腳本的運行」。
這裡主要取了CPU、內存及系統用戶幾個信息,大家利用WMI的API或者藉助JSEDIT獲取
到更多的信息。下面列出了常用信息的類:
Win32_Processor // CPU 處理器
Win32_PhysicalMemory // 物理內存
Win32_Keyboard // 鍵盤
Win32_PointingDevice / / 點輸入設備,如滑鼠
Win32_DiskDrive // 硬碟
Win32_CDROMDrive // 光碟機
Win32_BaseBoard // 主機板
Win32_ParallelPort // 並口
Win32_SerialPort // 串列埠
Win32_SoundDevice // 多媒體設定
Win32_SoundDevice // 多媒體設定
Win32_SoundDevice //AController // 網路介面卡
Win32_NetworkAdapterConfiguration // 網路介面卡設定
Win32_Printer // 印表機
Win32_PrinterConfigurationer // 印表機
Win32_PrinterConfigu 印表機設定>
Win32_TCPIPPrinterPort // 印表機連接埠
Win32_POTSModem // MODEM
Win32_POTSModemToSerialPort // MODEM 埠
Win32_VideoSettings // 顯示卡支援的顯示模式。
Win32_TimeZone // 時區
Win32_SystemDriver // 驅動程式
Win32_DiskPartition // 磁碟分割
Win32_DiskPartition // 磁碟區
Winmeicalo
Win32_PageFile // 系統頁文件信息
Win32_PageFileSetting // 頁文件設置
Win32_BootConfiguration // 系統啟動配置
Win32_OperatingSystem / / 作業系統資訊
Win32_StartupCommand // 系統自動啟動程式
Win32_Service // 系統安裝的服務
Win32_Group // 系統管理群組
Win32_UserAccount // 使用者帳號
Win32_Process // 系統行程
Win32_Thread // 系統程式
Win32_Thread // 系統程式
Win32_Share🎜
Win32_NetworkClient // 已安裝的網路用戶端
Win32_NetworkProtocol // 已安裝的網路協定
WMI Win32類別的完整資訊及詳細清單請參考MSDN:
http: //msdn2.microsoft.com/en-us/library/aa394084(VS.85).aspx 範例:
複製程式碼複製程式碼複製程式碼 程式碼如下:
function button1_onclick() {//cpu 訊息
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
var e = 新枚舉器(屬性);
document.write("");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("
");
document.write("" p.Caption " | ");
document.write("" p.DeviceID " | ");
document.write("" p.Name " | ");
document.write("" p.CpuStatus " | ");
document.write("" p.Availability " | ");
document.write("" p.Level " | ");
document.write("" p.ProcessorID " | ");
document.write("" p.SystemName " | ");
document.write("" p.ProcessorType " | ");
document.write("
");
}
document.write("");
}
function Button2_onclick() {// 繪圖資訊
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_CDROMDrive");
var e = 新枚舉器(屬性);
document.write("");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("");
document.write("" p.Caption " | ");
document.write("" p.Description " | ");
document.write("" p.Drive " | ");
document.write("" p.Status " | ");
document.write("" p.MediaLoaded " | ");
document.write("
");
}
document.write("");
}
function Button3_onclick() {//鍵盤資訊
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_Keyboard");
var e = 新枚舉器(屬性);
document.write("");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("");
document.write("" p.Description " | ");
document.write("" p.Name " | ");
document.write("" p.Status " | ");
document.write("
");
}
document.write("");
}
function Button4_onclick() {//主機板資訊
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard");
var e = 新枚舉器(屬性);
document.write("");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("");
document.write("" p.HostingBoard " | ");
document.write("" p.Manufacturer " | ");
document.write("" p.PoweredOn " | ");
document.write("" p.Product " | ");
document.write("" p.SerialNumber " | ");
document.write("" p.Version " | ");
document.write("
");
}
document.write("");
}
另外,通過以下方式也可以獲得系統的相關信息:
WMI 腳本 HTML