当前位置: 首页 > news >正文

2506js,活扩控件

ActiveXObject对象

js有个特殊的ActiveXObject对象,通过它可访问窗口本地文件系统和应用,比如:有时需要得到用户的机器名,用户名,得到某个文件的信息,或读写注册表,或启动计算器,邮箱等应用.

new ActiveXObject的用法

newObj = new ActiveXObject(servername.typename[, location])//`newObj`必选项.提供对象的应用名.`服务器名`必选项.提供对象的应用名.`型名`必选项.要创建的对象的`类型或类`.`位置`可选项.`创建对象`的`网络服务器`名返回一个`自动化`对象的引用

自动化服务器至少提供一类对象,如字处理应用可能提供应用对象,文档对象和工具栏对象.一般先用window.ActiveObject判断下浏览器是否支持ActiveXObject对象

ActiveXObject的常用对象及方法

[1]创建Excel应用对象,代码如下:

var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet")

创建一旦对象,就可在代码中引用定义的对象变量.

[2]通过ExcelSheet对象变量,访问新对象的属性和方法和其他包括应用对象和ActiveSheet.Cells集合的Excel对象.代码如下:

ExcelSheet.Application.Visible = true;
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
ExcelSheet.SaveAs("C:\\TEST.XLS");
ExcelSheet.Application.Quit();

[3]在创建远程服务器创建对象(注意:前提就是要将互联网安全性关闭).

要在远程网络计算机创建对象,可将该计算机名传递给ActiveXObject服务器名参数.该名与共享名机器名部分相同.

如共享名为"\\myserver\public"的网络,服务器名"myserver".另外,可用DNS格式或IP地址指定服务器名.
如果没有或找不到时指定的远程服务器将会错误.

function GetAppVersion() {var XLApp = new ActiveXObject("Excel.Application", "MyServer");return(XLApp.Version);//返回在名为`"myserver"`的远程网络计算机上运行的`Excel`实例的`版本号`
}

ActiveXObject的应用举例

(1)WScript.Network

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

function getusername()
{var WshNetwork = new ActiveXObject("WScript.Network");alert("Domain = " + WshNetwork.UserDomain);alert("Computer Name = " + WshNetwork.ComputerName);alert("User Name = " + WshNetwork.UserName);
}

(2)WScript.shell

a.取得系统目录

function getprocessnum()
{var pnsys=new ActiveXObject("WScript.shell");pn=pnsys.Environment("PROCESS");alert(pn("WINDIR"));
}

b.返回系统中特殊目录的路径

function getspecialfolder()
{var mygetfolder=new ActiveXObject("WScript.shell");if(mygetfolder.SpecialFolders("Fonts")!=null){alert(mygetfolder.SpecialFolders("Fonts"));}
} 

c.启动计算器

function runcalc()
{var calc=new ActiveXObject("WScript.shell");calc.Run("calc");
}

d.注册表操作

 //读注册表
function readreg()
{var myreadreg=new ActiveXObject("WScript.shell");try{alert(myreadreg.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\NeroCheck"));}catch(e){alert("没有读取的值!");}
}     //写注册表
function writereg() {var mywritereg = new ActiveXObject("WScript.shell");try {mywritereg.RegWrite("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest","c:\\mytest.exe");alert("写入成功!");} catch (e) {alert("写入路径错误!");}
}  //删除注册表
function delreg()
{var mydelreg=new ActiveXObject("WScript.shell");if(confirm("是否真删除?")){try{mydelreg.RegDelete("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest");alert("删除成功!");}catch(e){alert("删除路径错误");}}
}

(3)Scripting.filesystemobject

a.取得磁盘信息传入参数如:getdiskinfo('c')

function getdiskinfo(para)
{var fs=new ActiveXObject("scripting.filesystemobject");d=fs.GetDrive(para);s="标签:" + d.VolumeName;s+="------" + "剩余空间:" + d.FreeSpace/1024/1024 + "M";s+="------" + "磁盘序列号:" + d.serialnumber;alert(s);
}

b.文件操作

    //取得文件信息调用方式如:`getfileinfo('c:\\test.pdf')`
function getfileinfo(para)
{var myfile=new ActiveXObject("scripting.filesystemobject");var fi=myfile.GetFile(para);alert("文件类型:"+fi.type+"文件大小:"+fi.size/1024/1024+"M"+"最后一次访问时间:"+fi.DateLastAccessed);
}//遍历目录调用方式如:`enumFolders('c:\\')`
function enumFolders(para){var fso = new ActiveXObject("Scripting.FileSystemObject");var fldr = fso.GetFolder(para);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));}alert(folderArr.join(" "));
}
//----------------//遍历文件调用方式如:`enumFiles('c:\\')`
function enumFolders(para){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(" "));
}

c.创建文件

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");
}

(4)WbemScripting.SWbemLocator

a.取系统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;
}
http://www.xdnf.cn/news/768619.html

相关文章:

  • 基于ubuntu和树莓派环境对游戏进行移植
  • cJSON简单使用
  • uniapp路由跳转toolbar页面
  • 为何ERP系统更倾向使用业务编码作为主键?兼顾可读性与系统集成的设计思考
  • 【Zephyr 系列 3】多线程与调度机制:让你的 MCU 同时干多件事
  • oracle sql 语句 优化方法
  • 数据库系统概论(十三)详细讲解SQL中数据更新(插入,修改与更新)
  • RocketMQ 消息发送核心源码解析:DefaultMQProducerImpl.send () 方法深度剖析
  • 前端开发知识体系全景指南
  • 小目标检测:YOLOV7改进之双坐标注意力(DCA)
  • Python Day41
  • 神经网络与深度学习(第一章)
  • 链式前向星图解
  • 排序算法C语言实现
  • Linux配置DockerHub镜像源配置
  • Qt实现的水波进度条和温度进度条
  • 神经网络中的梯度消失与梯度爆炸
  • cnn训练并用grad-cam可视化
  • 基于遥感图像深度学习的海洋测深
  • 2024年数维杯国际大学生数学建模挑战赛C题时间信号脉冲定时噪声抑制与大气时延抑制模型解题全过程论文及程序
  • 题目 3230: 蓝桥杯2024年第十五届省赛真题-星际旅行
  • [蓝桥杯]约瑟夫环
  • web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)
  • 2025年5月24日系统架构设计师考试题目回顾
  • 【RAG 应用的可视化框架】
  • 【C++】类的构造函数
  • 【iOS(swift)笔记-13】App版本不升级时本地数据库sqlite更新逻辑一
  • 软件测评师教程 第2章 软件测试基础 笔记
  • 大数据-275 Spark MLib - 基础介绍 机器学习算法 集成学习 随机森铃 Bagging Boosting
  • 【C++进阶篇】C++11新特性(上篇)