当前位置: 首页 > 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;
}

相关文章:

  • 无法访问公网或 DNS 解析失败怎么办?
  • 【Python 算法零基础 4.排序 ⑦ 桶排序】
  • PythonWeb项目开发脚手架
  • 无线错误排查、排错命令
  • sctpscan:用于发现 SCTP 网络扫描器!全参数详细教程!Kali Linux教程!
  • unity开发棋牌游戏
  • CppCon 2014 学习:Defensive Programming Done Right.
  • windows 缓冲区溢出实验关于VS的一些配置 (逆向与漏洞分析 (魏强) (Z-Library))
  • 【存储基础】数据存储基础知识
  • 【基于阿里云搭建数据仓库(离线)】DataWorks中删除节点
  • 每日八股文6.2
  • 激光雷达的强度像和距离像误差与噪声分析(2)2025.6.2
  • 软件测评师教程 第2章 软件测试基础 笔记
  • Linux 中 m、mm、mmm 函数和 make 的区别
  • 【C++/Linux】TinyWebServer前置知识之IP协议详解
  • UE特效Niagara性能分析
  • String和StringBuilder和StringBuffer
  • Java从入门到精通 - 常用API(一)
  • Java函数式编程(中)
  • Vortex GPGPU的github流程跑通与功能模块波形探索(四)
  • 北京朝阳区做网站/seo是哪个国家
  • 对网站建设的考核机制/网站推广文章
  • 网站开发用什么开发工具好呢/智能识别图片
  • 黑客零基础入门/seo优化服务价格
  • 和17做网店类似的货源网站/外包公司为什么没人去
  • 永顺网站建设/百度推广最近怎么了