首頁 >web前端 >js教程 >JavaScript取得客戶端電腦硬體及系統等資訊的方法_javascript技巧

JavaScript取得客戶端電腦硬體及系統等資訊的方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:05:401236瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn