当前位置: 首页 > 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.lqws.cn/news/78247.html

相关文章:

  • 企业如何零基础建设网站?
  • 通俗理解“高内聚,低耦合”
  • 解锁 AI 大语言模型的“知识宝藏”:知识库的奥秘与优化之道
  • 项目管理进阶:56页大型IT项目管理实践经验分享【附全文阅读】
  • 学习STC51单片机25(芯片为STC89C52RCRC)
  • ESP32之Linux编译环境搭建流程
  • C++中实现随机数(超详细!​​​​​)
  • web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)
  • Spring MVC
  • MATLAB 安装与使用详细教程
  • 网络地址转换
  • 【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)
  • Android第十二次面试GetX库渲染机制
  • 数据结构之堆:解析与应用
  • PostgreSQL pgrowlocks 扩展
  • 吴恩达MCP课程(5):mcp_chatbot_prompt_resource.py
  • webpack和vite的区别
  • SQL 逻辑处理顺序详解
  • 2025年危化品安全员考试题库及答案
  • 软件测评师教程 第2章 软件测试基础 笔记
  • DeepSeek模型多模态扩展与跨模态理解实战
  • 强人工智能 vs 弱人工智能:本质区别与未来展望
  • JavaSE 字符串:深入解析 String、StringBuilder与 StringBuffer
  • springboot04
  • NVMe IP现状扫盲
  • [网页五子棋][匹配对战]落子实现思路、发送落子请求、处理落子响应
  • Java设计模式之备忘录模式详解
  • 告别printf!嵌入式系统高效日志记录方案
  • 用“红烧鱼”类比说明卷积神经网络CNN的概念
  • 第18讲、Odoo接口开发详解:原理、类型与实践