使用JavaScript获取硬件参数信息_道道道人间道的博客-程序员宅基地_js获取硬件信息

技术标签: 系统硬件  前端  javascript  开发语言  

原理是利用ActiveX对象访问Windowsmanagement Instrumentation (WMI) ,所以代码目前也只能在以IE为内核的浏览器中正常运行,如果要运行在其他内核的浏览器中,那么可通过PPAPI、NPAPI等相关技术实现。

一、ActiveX + WMI方式

以下是获取cpu的部分属性,Win32_Processor就是cpu的标识

var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
var e = new Enumerator (properties);
document.write("<table border=1>");
for (;!e.atEnd();e.moveNext ())
{
    var p = e.item ();
    document.write("<tr>");
    document.write("<td>" + p.Caption + "</td>");
    document.write("<td>" + p.DeviceID + "</td>");
    document.write("<td>" + p.Name + "</td>");
    document.write("<td>" + p.CpuStatus + "</td>");
    document.write("<td>" + p.Availability + "</td>");
    document.write("<td>" + p.Level + "</td>");
    document.write("<td>" + p.ProcessorID + "</td>");
    document.write("<td>" + p.SystemName + "</td>");
    document.write("<td>" + p.ProcessorType + "</td>");
    document.write("</tr>");
}
document.write("</table>");

硬件标识及属性

部分标识列举如下:

Win32_Processor                        // CPU 处理器

Win32_PhysicalMemory                   // 物理内存

Win32_Keyboard                         // 键盘

Win32_PointingDevice                   // 点输入设备,如鼠标

Win32_DiskDrive                        // 硬盘驱动器

Win32_CDROMDrive                       // 光盘驱动器

Win32_BaseBoard                        // 主板

Win32_BIOS                             // BIOS 芯片

Win32_ParallelPort                     // 并口

Win32_SerialPort                       // 串口

Win32_SoundDevice                      // 多媒体设置

Win32_USBController                    // USB 控制器

Win32_NetworkAdapter                   // 网络适配器

Win32_NetworkAdapterConfiguration      // 网络适配器设置

Win32_Printer                          // 打印机

Win32_PrinterConfiguration             // 打印机设置

Win32_PrintJob                         // 打印机任务

Win32_TCPIPPrinterPort                 // 打印机端口

Win32_POTSModem                        // MODEM

Win32_POTSModemToSerialPort            // MODEM 端口

Win32_DesktopMonitor                   // 显示器

Win32_VideoController                  // 显卡细节。

Win32_VideoSettings                    // 显卡支持的显示模式。

Win32_TimeZone                         // 时区

Win32_SystemDriver                     // 驱动程序

Win32_DiskPartition                    // 磁盘分区

Win32_LogicalDisk                      // 逻辑磁盘

Win32_LogicalMemoryConfiguration       // 逻辑内存配置

Win32_PageFile                         // 系统页文件信息

Win32_PageFileSetting                  // 页文件设置

Win32_BootConfiguration                // 系统启动配置

Win32_OperatingSystem                  // 操作系统信息

Win32_StartupCommand                   // 系统自动启动程序

Win32_Service                          // 系统安装的服务

Win32_Group                            // 系统管理组

Win32_GroupUser                        // 系统组帐号

Win32_UserAccount                      // 用户帐号

Win32_Process                          // 系统进程

Win32_Thread                           // 系统线程

Win32_Share                            // 共享

Win32_NetworkClient                    // 已安装的网络客户端

Win32_NetworkProtocol                  // 已安装的网络协议

完整的硬件标识和硬件具有的属性值可参见MSDN

中文版:Win32_DiskDrive 类 - Win32 apps | Microsoft Docs

英文版:Win32_Processor class - Win32 apps | Microsoft Docs

繁体版:Win32_DiskDrive 類別 - Win32 apps | Microsoft Docs

WMI资料:Windows Management Instrumentation - Win32 apps | Microsoft DocsWindows Management Instrumentation - Win32 apps | Microsoft Docs

二、NPAPI

三、PPAPI

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a812073479/article/details/123231831

智能推荐

KNN cosine 余弦相似度计算_weixin_34274029的博客-程序员宅基地

# coding: utf-8import collectionsimport numpy as npimport osfrom sklearn.neighbors import NearestNeighborsdef cos(vector1,vector2): dot_product = 0.0; normA = 0.0; normB = 0.0; ...

loadrunner总计_IT珂学家的博客-程序员宅基地

loadrunner: 三大功能: 1:录制编写脚本,使用c语言2:场景设置,也就是压力测试3:结果分析,同时出性能测试报告loadrunner 压力测试三个场景: 1:对页面做压力测试,一般使用web_url函数与2: 对接口进行压力测试,一般使用可web_submit_data 函数3: 对场景进行压力测试,也就业页面加接口的逻辑首先loadrunner有post何get方法: get :方法...

Android学习笔记之RadioButton(RadioGroup)_飞翔凡人的博客-程序员宅基地

RadioButton(单选按钮)在Androi发中应用的非常广泛,比如一些选择项的时候,会用到单选按钮。它是一种单个圆形单选框双状态的按钮,可以选择或不选择。在RadioButton没有被选中时,用户能够按下或点击来选中它。但是,与复选框相反,用户一旦选中就不能够取消选中。    实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使用.RadioG

python 2 抽象基类_时空无限的博客-程序员宅基地_python2 抽象类

抽象基类的作用就是,让父类中的方法不可实例化,只能继承。但子类想要继承父类中的方法必须实现该方法,看如下代码。代码cat test.py #/usr/bin/env python#coding:utf8from abc import ABCMeta,abstractmethodclass Fish(): __metaclass__ = ABCMeta @abstractmethod def swim(self): print '游泳'fish = F

mybatis mysql schema_学习Mybatis与mysql数据库的示例笔记_thehun attila的博客-程序员宅基地

目录结构:pom.xml文件1 2 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;5 ...

android url inputstream,Android HttpUrlConnection getInputStream引发NullPoint..._凯文哥爱分享的博客-程序员宅基地

我正在尝试从以下网址下载图像:这是堆栈跟踪:03-21 12:58:04.040: W/System.err(7084): java.lang.NullPointerException03-21 12:58:04.040: W/System.err(7084): at libcore.net.http.HttpConnection$Address.hashCode(HttpConnecti...

随便推点

mysql 多线程 demo_多线程协作demo_同步齿科-方的博客-程序员宅基地

启动两个线程, 一个输出1,3,5,7,9....99,另一个输出2,4,6,8....100,最后在terminal中输出1,2,3,4,5,6.....100java 线程实现/*** 多线程并发的时候需要通过一个锁来进行wait和notify控制线程的唤醒和等待*/Object lock = new Object();/*** lambda代码块只能操作lambda代码块外的final变量,...

js,forEach的理解_weixin_34113237的博客-程序员宅基地

初学者每次提到Array对象的时候有些烦人,有些方法是改变原数组的,有些则不改变原数组。有趣的存在~forEach这个方法,或者说数组存储的数据本身看两个例子:例子一: let obj = {'1':1} let oldArr = ['1',1,obj,true] oldArr.forEach((el)=&gt;{ el = 1 }) co...

Linux运行UI自动化,Linux环境搭建docker-selenium来运行UI自动化_东山白云意的博客-程序员宅基地

Linux环境搭建docker-selenium来运行UI自动化前沿:我们一般做UI自动化的时候,是在需要浏览器进行驱动跑我们的用例,但是如果我们要统一把用例放到服务端(Linux系统)下运行,是没有界面,无法运行。随着技术的发展,出现了docker,相应的有针对docker-selenium.接着我们来实现怎么在Linux环境下运行selenium脚本。1.在Linux环境下,我们首先要搭建do...

Vue学习笔记(一)_weixin_34101229的博客-程序员宅基地

组件:分三步创建组件:var myComponent = Vue.extend({ template:'&lt;div&gt;This is my first component&lt;/div&gt;'});注册组件:Vue.component('firstcomponent',firstcomponent);使用组件&lt;first...

用计算机管理学生成绩,北京计算机大学组织专家对《学生成绩管理系统》的需求方案进行评审,为使参会人员对会议流程和内容有一个清晰的了解_题来了..._weixin_39770226的博客-程序员宅基地

步骤1:打开考生文件夹下的“需求评审会.docx”素材文件。步骤2:根据题目要求,单击【文件】选项卡下的“另存为”按钮,弹出“另存为”对话框,在该对话框中将“文件名”设置为“评审会会议秩序册”,将其保存于考生文件夹下。(2)【解题步骤】考点提示:本题主要考核页面格式的设置。步骤1:单击【页面布局】选项卡下的【页面设置】组中的对话框启动器按钮。弹出“页面设置”对话框,切换至“纸张”选项卡,在“纸张大...

H5移动端页面加入canvas可滑动代码条件下android手机点击input重复弹出键盘_weixin_34072159的博客-程序员宅基地

在移动端页面使用canvas的动画,为了实现动画的触摸滑动,会加入createjs.Touch.enable(stage, true, false)这条语句,但加入这条语句后,页面的input和click等可点击事件都会失效,所以会用触摸事件来实现相关功能,如下:$('#button').on('touchstart', functio...

推荐文章

热门文章

相关标签