只有IE浏览器才支持这个构造函数,可以用这个来判断,当前是否为IE浏览器

var isIE=!!window.ActiveXObject; 

在IE的不同版本下,要创建XHR对象,也需要通过这个构造函数来创建(构造时的参数不一样)。

因为ActiveXObject的使用容易存在安全问题,如IE11中报错

Automation 服务器不能创建对象

解决办法:

Internet选项-安全-自定义安全级别-启用“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”

详解

JavaScript 中 ActiveXObject 对象是启用并返回 Automation对象的引用。

newObj = new ActiveXObject( servername.typename[, location])

  • servername是必选项。提供该对象的应用程序的名称。
  • typename是必选项。要创建的对象的类型或类。
  • location是可选项。创建该对象的网络服务器的名称。

附件:https://files.cnblogs.com/files/hellohello/oleview_setup.zip

具体这个new ActiveXObject能创建出来什么对象,去搜索一下“VBS CreateObject”就知道了,后面举出几个例子

取得机器名,登录域及登录用户名  

var WshNetwork = new ActiveXObject("WScript.Network");
console.log("Domain = " + WshNetwork.UserDomain); // Domain = YGSOFT
console.log("Computer Name = " + WshNetwork.ComputerName); // Computer Name = GRIS-LIWENJUN
console.log("User Name = " + WshNetwork.UserName); // User Name = liwenjun

Wscript.shell

获取环境变量

let pnsys = new ActiveXObject("WScript.shell");
let pn = pnsys.Environment("PROCESS");
console.log(pn("WINDIR")); // C:\Windows

执行cmd指令(启动了计算器)

var calc=new ActiveXObject("WScript.shell");
calc.Run("calc");

注册表操作(输出400)

var myreadreg = new ActiveXObject("WScript.shell");
try {
console.log(myreadreg.RegRead("HKEY_CURRENT_USER\\Console\\Git Bash\\FontWeight"));
}
catch (e) {
console.log("读取的值不存在!");
}

写入注册表

mywritereg.RegWrite("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest","c:\\mytest.exe");

删除注册表

mydelreg.RegDelete("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest");

Scripting.filesystemobject

获取磁盘信息(如C盘)

var fs = new ActiveXObject("scripting.filesystemobject");
d = fs.GetDrive('c');
s = "卷标:" + d.VolumeName;
s += "------" + "剩余空间:" + d.FreeSpace / 1024 / 1024 / 1024 + "G";
s += "------" + "磁盘序列号:" + d.serialnumber;
console.log(s)

获取文件信息

var myfile = new ActiveXObject("scripting.filesystemobject");
var fi = myfile.GetFile('D:\\DemandFlowDeptBO.java');
console.log("文件类型:" + fi.type + "文件大小:" + fi.size / 1024 / 1024 + "M" + "最后一次访问时间:" + fi.DateLastAccessed);

遍历目录

var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.GetFolder('D:\\vm');
var file = new Enumerator(fldr.files);
var folderArr = [];
var folder = new Enumerator(fldr.SubFolders);
for (; !folder.atEnd(); folder.moveNext()) {
var folderStr = String(folder.item());
folderArr.push(String(folder.item()).substring(folderStr.lastIndexOf("\\") + 1, folderStr.length));
} console.log(folderArr.join(" "));

遍历文件

var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.GetFolder(para);
var file = new Enumerator(fldr.files);
var fileArr = [];
for (; !file.atEnd(); file.moveNext()) {
var fileStr = String(file.item());
fileArr.push(String(file.item()).substring(fileStr.lastIndexOf("\\") + 1, fileStr.length));
} alert(fileArr.join(" "));

读写文件

function createText1(){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\\myjstest.txt",true);
f1.WriteLine("这是内容");
f1.close(); var kk=fso.OpenTextFile("c:\\a.txt");//打开文件
while(!kk.atEndOfLine){
document.writeln(kk.readLine());//读取文件,并输出
}
}
function createText2(){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.GetFile("c:\\myjstest.txt");
}

WbemScripting.SWbemLocator

获取CPU核数

var locator = new ActiveXObject("WbemScripting.SWbemLocator");

function getCpu() {
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
var e = new Enumerator(properties); // 有阻塞
var p = e.item();
return p.LoadPercentage;
}
let data = getCpu();
console.log(data) //

ActiveXObject的更多相关文章

  1. Web网站中利用JavaScript中ActiveXObject对象获取硬件信息(显示器数量、分辨率)从而进行单双屏跳转

    前言:最近这两天工作上,要实现一个功能,在好友阿聪的帮助下,算是比较好的解决了这个需求. B/S的Web网站,需要实现点击按钮时,根据客户端连接的显示屏(监视器)数量进行,单双屏跳转显示新页面. 由于 ...

  2. ActiveX控件之ActiveXObject is not defined

    ActiveX控件方便用户在网页中插入各种效果,但是并不是所有浏览器都支持该控件. ActiveX是微软独有的,只有基于IE内核的浏览器才能使用. 当出现如上错误,可以将通过该控件创建的对象定义为本地 ...

  3. JavaScript中ActiveXObject对象

    JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用.使用方法: newObj = new ActiveXObject( servername.typen ...

  4. javascript的window.ActiveXObject对象,区别浏览器的方法

    (window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("M ...

  5. JS入门之ActiveXObject对象(转载)

    JS入门之ActiveXObject对象   此对象提供自动化对象的接口.   function ActiveXObject(ProgID : String [, location : String] ...

  6. JS、ActiveXObject、Scripting.FileSystemObject

    Javascript之文件操作 (IE) 一.功能实现核心:FileSystemObject 对象      要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对 ...

  7. new ActiveXObject("Scripting.FileSystemObject") 时抛出异常 .

    使用JScript读写本地文件时,会使用Scripting.FileSystemObject控件. IE默认是不允许运行这类“未标记为安全执行脚本的ActiveX控件”的. 因此执行下行代码时: fs ...

  8. (转)js activexobject调用客户机exe文件

    原文地址:http://blog.csdn.net/jiafugui/article/details/5364210 function Run(strPath) { try { var objShel ...

  9. ActiveXObject函数详解

    什么是 ActiveX 控件? ActiveX 控件广泛用于 Internet.它们可以通过提供视频.动画内容等来增加浏览的乐趣.不过,这些程序可能出问题或者向您提供不需要的内容.在某些情况下,这些程 ...

  10. js 实现ActiveXObject("Scripting.Dictionary") 功能

    /* 字典 ActiveXObject("Scripting.Dictionary") 项目中用到的ActiveXObject("Scripting.Dictionary ...

随机推荐

  1. GYM 101933K(二项式反演、排列组合)

    方法一 设\(f_i\)为最多使用\(i\)种颜色的涂色方案,\(g_i\)为恰好只使用\(i\)种颜色的涂色方案.可知此题答案为\(g_k\). 根据排列组合的知识不难得到\(f_k = \sum_ ...

  2. jsp页面包含的几中方式

    (1)include指令 include指令告诉容器:复制被包含文件汇总的所有内容,再把它粘贴到这个文件中. <%@ include file="Header.jsp"%&g ...

  3. Linux上安装Docker,并成功部署NET Core 2.0

    概述 容器,顾名思义是用来存放并容纳东西的器皿: 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共 ...

  4. Hypertext Application Language(HAL)

    Hypertext Application Language(HAL) HAL,全称为Hypertext Application Language,它是一种简单的数据格式,它能以一种简单.统一的形式, ...

  5. B. Batch Sort

    http://codeforces.com/contest/724/problem/B 被坑了,一开始以为如果有一行已经是排好序了,然后有一行需要转换的次数 >= 2的话,那就直接no了. 因为 ...

  6. ECharts3.0介绍、入门

    ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,S ...

  7. cocos2dx贝塞尔曲线--使用PS辅助规划动作路径

    bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ...

  8. JavaScirpt 的垃圾(garbage collection)回收机制

    一.垃圾回收机制—GC Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存. 原理:垃圾收集器会定期(周期性 ...

  9. Android ORM对象关系映射之GreenDAO建立多表关联

    https://blog.csdn.net/u010687392/article/details/48496299 利用GreenDAO可以非常方便的建立多张表之间的关联 一对一关联 通常我们在操作数 ...

  10. 常用的图片相关方法,读取,保存,压缩,缩放,旋转,drawable转化

    import android.content.Context; import android.content.res.AssetManager; import android.content.res. ...