`

ActiveXObject函数详解

    博客分类:
  • js
 
阅读更多
什么是 ActiveX 控件?
ActiveX 控件广泛用于 Internet。它们可以通过提供视频、动画内容等来增加浏览的乐趣。不过,这些程序可能出问题或者向您提供不需要的内容。在某些情况下,这些程序可被用来以您不允许的方式从计算机收集信息、破坏您的计算机上的数据、在未经您同意的情况下在您的计算机上安装软件或者允许他人远程控制您的计算机。考虑到这些风险,您应该在完全信任发行商的情况下才安装这些程序。
当 Windows 阻止 ActiveX 控件的安装时,您应该做什么?
您可能不应该安装该 ActiveX 控件。安装 Windows 阻止的 ActiveX 控件是极为冒险的事情。如果 Internet Explorer 安全设置处于默认级别,并且 ActiveX 控件没有有效的数字签名,Windows 就会阻止该 ActiveX 控件的安装。
有效的数字签名可确认发行商的标识(分发文件的公司、网站或个人),并确认文件自签名以后没有被篡改过这一事实。如果文件没有有效的数字签名,您就无法确定文件是否真的来自它所声明的来源,或者它是否没有被篡改过(例如,可能会有病毒插入控件中)。除非您信任发行商,并且知道文件打开后内容会是安全的,否则,就不应该打开文件。
ActiveXObject对象使用说明:
 
JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用。使用方法:
newObj = new ActiveXObject( servername.typename[, location])
ActiveXObject 对象语法有这些部分:
其中newObj是必选项。要赋值为 ActiveXObject 的变量名。
servername是必选项。提供该对象的应用程序的名称。
typename是必选项。要创建的对象的类型或类。
location是可选项。创建该对象的网络服务器的名称。
Automation服务器至少提供一类对象,例如字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。
例如要创建Excel的Application和Sheet对象,代码如下:

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


一旦对象被创建,就可以用定义的对象变量在代码中的引用它。下面我们将通过一个例子来看看对对象和方法的引用,通过对象变量 ExcelSheet 访问新对象的属性和方法和其他 Excel 对象,包括 Application 对象和 ActiveSheet.Cells 集合。代码如下:

1 ExcelSheet.Application.Visible = true;
2 ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
3 ExcelSheet.SaveAs("C:\\TEST.XLS");
4 ExcelSheet.Application.Quit();
 
 
下面我们来看看怎样创建远程服务器中创建对象,但是这有一个前提就是要将Internet安全性关闭。要在远程网络计算机创建对象,可以将该计算机的名称传递给 ActiveXObject 的 servername 参数。该名称与共享名的机器名部分相同。比如共享名为 "\\myserver\public" 的网络,servername 是 "myserver"。另外,可以用 DNS 格式或 IP 地址指定 servername。下面的代码返回在名为 "myserver" 的远程网络计算机上运行的 Excel 实例的版本号:

1 function GetAppVersion() {
2     var XLApp = new ActiveXObject("Excel.Application", "MyServer");
3     return(XLApp.Version);
4 }


如果指定的远程服务器不存在或找不到时将会发生错误。
  1. javascript取得机器名,用户名,读写注册表,启动应用程序     
  2. //javascript有个特殊的对象ActiveXObject,通过它可以访问windows的本地文件系统和应用程序,     
  3. 比如:有的时候我们需要得到用户的机器名,用户名,得到某个文件的信息,或者读写注册表,或者启动计算器、outlook等应用程序。     
  4.     
  5. 下面是一些常用的方法,每个都经过了测试。     
  6. <script language="JavaScript">     
  7. //取得机器名,登录域及登录用户名     
  8. function getusername()     
  9. {     
  10. var WshNetwork = new ActiveXObject("WScript.Network");     
  11. alert("Domain = " + WshNetwork.UserDomain);     
  12. alert("Computer Name = " + WshNetwork.ComputerName);     
  13. alert("User Name = " + WshNetwork.UserName);     
  14. }     
  15.     
  16. //取得系统目录     
  17. function getprocessnum()     
  18. {     
  19.         var pnsys=new ActiveXObject("WScript.shell");     
  20.         pn=pnsys.Environment("PROCESS");     
  21.         alert(pn("WINDIR"));     
  22. }     
  23. //返回系统中特殊目录的路径     
  24. function getspecialfolder()     
  25. {     
  26.     var mygetfolder=new ActiveXObject("WScript.shell");     
  27.     if(mygetfolder.SpecialFolders("Fonts")!=null)     
  28.     {     
  29.         alert(mygetfolder.SpecialFolders("Fonts"));     
  30.      }     
  31. }     
  32. //取得磁盘信息 传入参数如:getdiskinfo('c')     
  33. function getdiskinfo(para)     
  34. {     
  35.     var fs=new ActiveXObject("scripting.filesystemobject");     
  36.     d=fs.GetDrive(para);     
  37.     s="卷标:" + d.VolumnName;     
  38.     s+="------" + "剩余空间:" + d.FreeSpace/1024/1024 + "M";     
  39.     s+="------" + "磁盘序列号:" + d.serialnumber;     
  40.     alert(s)     
  41. }     
  42. //取得系统目录     
  43. function getprocessnum()     
  44. {     
  45.         var pnsys=new ActiveXObject("WScript.shell");     
  46.         pn=pnsys.Environment("PROCESS");     
  47.         alert(pn("WINDIR"));     
  48. }     
  49. //启动计算器     
  50. function runcalc()     
  51. {     
  52.     var calc=new ActiveXObject("WScript.shell");     
  53.     calc.Run("calc");     
  54. }     
  55. //读取注册表中的值     
  56. function readreg()     
  57. {     
  58.     var myreadreg=new ActiveXObject("WScript.shell");     
  59.     try{     
  60.         alert(myreadreg.RegRead             ("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\NeroCheck"));     
  61.      }     
  62.     catch(e)     
  63.     {     
  64.         alert("读取的值不存在!");     
  65.      }     
  66. }     
  67. //写注册表     
  68. function writereg()     
  69. {     
  70.     var mywritereg=new ActiveXObject("WScript.shell");     
  71.     try{     
  72.         mywritereg.RegWrite("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest","c:\\mytest.exe");     
  73.         alert("写入成功!");     
  74.      }     
  75.     catch(e)     
  76.     {     
  77.         alert("写入路径不正确!");     
  78.      }     
  79. }     
  80. //删除注册表     
  81. function delreg()     
  82. {     
  83.     var mydelreg=new ActiveXObject("WScript.shell");     
  84.     if(confirm("是否真的删除?"))     
  85.     {     
  86.         try{     
  87.     mydelreg.RegDelete("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest");     
  88.     alert("删除成功!");     
  89. }     
  90. catch(e)     
  91. {     
  92.     alert("删除路径不正确");     
  93. }     
  94.      }     
  95. }     
  96. //取得文件信息    调用方式如:getfileinfo('c:\\test.pdf')     
  97. function getfileinfo(para)     
  98. {     
  99.     var myfile=new ActiveXObject("scripting.filesystemobject");     
  100.     var fi=myfile.GetFile(para);     
  101.     alert("文件类型:"+fi.type+"文件大小:"+fi.size/1024/1024+"M"+"最后一次访问时间:"+fi.DateLastAccessed);     
  102. }     
  103. //取得客户端的信息     
  104. function clientInfo()     
  105. {     
  106.     strClientInfo="availHeight=      "+window.screen.availHeight+"\n"+     
  107. "availWidth=      "+window.screen.availWidth+"\n"+     
  108. "bufferDepth=      "+window.screen.bufferDepth+"\n"+     
  109. "colorDepth=      "+window.screen.colorDepth+"\n"+     
  110. "colorEnable=      "+window.navigator.cookieEnabled+"\n"+     
  111. "cpuClass=      "+window.navigator.cpuClass+"\n"+     
  112. "height=      "+window.screen.height+"\n"+     
  113. "javaEnable=      "+window.navigator.javaEnabled()+"\n"+     
  114. "platform=      "+window.navigator.platform+"\n"+     
  115. "systemLanguage=      "+window.navigator.systemLanguage+"\n"+     
  116. "userLanguage=      "+window.navigator.userLanguage+"\n"+     
  117. "width=      "+window.screen.width;     
  118.     alert(strClientInfo);        
  119. }     
  120.     
  121. </script>     
  122.     
  123. //另存为excel文件并写入值     
  124. function saveas(){     
  125. var ExcelApp = new ActiveXObject("Excel.Application");     
  126. var ExcelSheet = new ActiveXObject("Excel.Sheet")     
  127.  ExcelSheet.Application.Visible = true;     
  128.  ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";     
  129.  ExcelSheet.SaveAs("C:\\TEST.XLS");     
  130.  ExcelSheet.Application.Quit();     
  131.  alert('ok');     
分享到:
评论

相关推荐

    COM组件中调用JavaScript函数详解及实例

    在组件A中,我们需要定义一个方法,该方法接受一个参数,这个参数将是一个JavaScript回调函数的引用。在IDL(Interface Definition Language)中,我们可以这样定义: ```idl [id(2)] HRESULT longCalc([in] DOUBLE...

    ajax 核心代码

    `send_request` 函数详解 #### 2.1 参数解释 - **url**:指定请求的目标 URL。 - **method**:指定请求方法,支持 "GET" 和 "POST"。 - **params**:参数字符串,用于发送给服务器的数据。 - **responseType**:...

    javascript xml操作函数

    ### JavaScript XML操作函数详解 #### 一、简介 在JavaScript中处理XML数据是常见的需求之一。本文档将详细介绍一个自定义的JavaScript库,该库提供了一系列用于操作XML数据的方法,包括加载XML文件(同步和异步)...

    详解Ajax的基本原理

    5. **异步响应**: 当服务器返回响应时,回调函数处理数据,更新DOM,无需页面刷新。 **XMLHttpRequest对象** XMLHttpRequest对象是Ajax的核心,它提供了与服务器进行异步通信的能力。创建XMLHttpRequest实例的代码...

    C# win32API编程 源码案例详解

    4. **jQuery交互**:在Web应用中,JavaScript可能通过ActiveXObject与服务器端的Win32API进行交互,实现一些特殊功能。 此外,学习C# Win32API编程还能帮助开发者理解操作系统的工作原理,提高解决问题的能力。比如...

    Ajax 开发详解,Ajax开发详解

    - **浏览器兼容性**:早期版本的IE浏览器对Ajax支持不完善,需要使用ActiveXObject。 - **安全问题**:由于Ajax请求通常局限于同源策略,跨域请求需要服务器端配合。 - **SEO难题**:搜索引擎爬虫无法执行...

    JavaScript 读写文件

    ### JavaScript 读写文件知识点详解 #### 一、概述 在Web开发中,JavaScript 主要用于客户端脚本处理,但也可以通过特定环境如Node.js在服务器端进行文件操作。本次介绍的是利用`ActiveXObject`(仅限于IE浏览器)...

    AJAX详解,菜鸟请进

    在这个例子中,我们创建了一个XMLHttpRequest对象,设置了请求完成后的回调函数,然后发送了一个GET请求到指定URL。当服务器返回数据后,我们解析JSON数据并更新ID为'result'的元素内容。 四、AJAX的优点与局限性 ...

    AJAX的介绍与使用问题详解.docx

    创建XMLHttpRequest对象有两种方式,一种适用于现代浏览器(如IE7+、Firefox、Chrome、Opera和Safari),另一种是针对旧版IE浏览器的ActiveXObject。 使用XMLHttpRequest对象进行AJAX请求的基本步骤如下: 1. **...

    JScript详解对(希望对大家有用)

    例如,JScript支持一些特有的函数和对象,如ActiveXObject,可以与Windows操作系统进行更深入的交互。 二、JScript基础语法 1. 变量声明:JScript使用`var`关键字来声明变量,例如`var x = 10;`。与JavaScript一样...

    ajax框架,经典结构

    ### AJAX框架经典结构详解 #### 一、引言 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页可以实现动态...

    Ajax开发详解

    ### Ajax开发详解 #### 一、Ajax的概念及产生背景 **Ajax**,即“Asynchronous JavaScript and XML”,由Jesse James Gaiiett创造并命名,它代表了一种用于创建交互式网页应用程序的技术集。尽管其名称暗示了XML的...

    0积分:Ajax应用(Struts例子).txt

    #### 2.2 testName()函数详解 `testName()`函数用于处理AJAX请求的逻辑。它首先获取页面中的`view_name`元素,然后创建`XMLHttpRequest`对象,并设置请求的`onreadystatechange`事件处理器,用于监听请求状态变化。...

    JavaScript 后台验证

    ### JavaScript 后台验证知识点详解 #### 一、概述 在Web开发中,表单验证是确保用户输入数据准确性和安全性的关键步骤之一。传统的表单验证通常在服务器端进行,这种方式虽然有效,但用户体验较差,因为每次提交...

    ajax异步请求

    ### AJAX异步请求详解 #### 一、引言 随着Web技术的发展,用户对网站的交互性和实时性有了更高的需求。传统的网页提交方式在提交表单时会重新加载整个页面,这种方式不仅耗时而且用户体验较差。为了解决这一问题,...

    PJBLOG中用到的ajaxjs.几个简单的函数

    ### PJBLOG中使用的AjaxJS:几个简单函数详解 在Web开发中,Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML技术)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与...

    JavaScript导出Excel实例详解

    由于JavaScript运行在浏览器环境中,它不能直接操作本地文件系统,所以通常需要借助ActiveXObject,这是一个只适用于Internet Explorer的组件,允许JavaScript与服务器端的Office应用(如Excel)进行交互。...

    AJAX原理详解

    **AJAX原理详解** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。它的出现极大地提升了Web应用程序的用户体验,使得用户可以在等待服务器响应的同时,...

Global site tag (gtag.js) - Google Analytics