activexobject java_ActiveXObject[通俗易懂]

activexobject java_ActiveXObject[通俗易懂]只有IE浏览器才支持这个构造函数,可以用这个来判断,当前是否为IE浏览器varisIE=!!window.ActiveXObject;在IE的不同版本下,要创建XHR对象,也需要通过这个构造函数来创建(构造时的参数不一样)。因为ActiveXObject的使用容易存在安全问题,如IE11中报错Automation服务器不能创建对象解决办法:Internet选项-安全-自定义安全级别-启用“对未...

只有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是可选项。创建该对象的网络服务器的名称。

servername.typename的取值,可以在本地注册表(regedit)中的HKEY_CLASSES_ROOT中找到对应的标识符。如

20190115112236072597.png

为了能查看创建出来的ActiveXObject对象,能使用什么方法,需要使用ole/com object viewer这个查看器。

ole/com object viewer

双击下一步安装之后,在安装目录中找到

20190115112236501324.png

打开后,在这里找到本机已安装的automation对象

20190115112236776725.png

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

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("读取的值不存在!");

}

20190115112237098027.png

写入注册表

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 = newEnumerator(fldr.files);var folderArr =[];var folder = newEnumerator(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 = newEnumerator(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(" "));

读写文件

functioncreateText1(){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());//读取文件,并输出

}

}functioncreateText2(){var fso = new ActiveXObject("Scripting.FileSystemObject");var f1 = fso.GetFile("c:\\myjstest.txt");

}

WbemScripting.SWbemLocator

获取CPU核数

var locator = new ActiveXObject("WbemScripting.SWbemLocator");functiongetCpu() {var service = locator.ConnectServer(".");var properties = service.ExecQuery("SELECT * FROM Win32_Processor");var e = new Enumerator(properties); //有阻塞

var p =e.item();returnp.LoadPercentage;

}

let data=getCpu();

console.log(data)//4

本文来源老铁爱金衫,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/211941
0

发表评论