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

ActiveXObject函数详解(转)的更多相关文章

  1. ActiveXObject函数详解

    什么是 ActiveX 控件? ActiveX 控件广泛用于 Internet.它们可以通过提供视频.动画内容等来增加浏览的乐趣.不过,这些程序可能出问题或者向您提供不需要的内容.在某些情况下,这些程 ...

  2. ActiveXObject函数详解(转自http://eyesinthesky.iteye.com/blog/1560033)

    什么是 ActiveX 控件? ActiveX 控件广泛用于 Internet.它们可以通过提供视频.动画内容等来增加浏览的乐趣.不过,这些程序可能出问题或者向您提供不需要的内容.在某些情况下,这些程 ...

  3. malloc 与 free函数详解<转载>

    malloc和free函数详解   本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...

  4. NSSearchPathForDirectoriesInDomains函数详解

    NSSearchPathForDirectoriesInDomains函数详解     #import "NSString+FilePath.h" @implementation ...

  5. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  6. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

  7. kzalloc 函数详解(转载)

    用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...

  8. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  9. jQuery.attr() 函数详解

    一,jQuery.attr()  函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...

随机推荐

  1. vbs和qtp一些脚本

    ********************************************************************************************** 用vbs调 ...

  2. NGUI实现一个背包功能

    界面布局是这样的,一个400*400的背景,然后在其上是16张小图片,每个小图片格子可以用来放置拾取的物品.有两个预制体,一个是可放置的小格子,一个是拾取的物品(包含一个此物品有多少的Label). ...

  3. 推荐两个界面原型设计工具--GUIDesignStudio 和 Mockups For Desktop

    前段时间,有幸参加一次高级软件架构师的培训,授课老师介绍了两个很好玩的界面原型设计工具:GUIDesignStudio 和 Mockups For Desktop,现分享一下,截图说明,洗洗眼球,权当 ...

  4. Java is Pass-by-Value!

    Java is strictly pass-by-value. which means, when you pass a variable to a method, the method will j ...

  5. how computer boot up?

    The power button activates the power supply in the PC, sending power to the motherboard and other co ...

  6. could not perform addBatch

    在执行存数据到数据库的操作时,由于增加的ID值小于或等于对应的索引值时会报这个错误

  7. SUPERVISOR进程管理器配置指南

    SUPERVISOR进程管理器配置指南1. supervisor简介1.1. 官网http://supervisord.org/ 1.2. 介绍Supervisor是一个进程控制系统. 它是一个C/S ...

  8. 解读QML之一

    http://cache.baiducontent.com/c?m=9d78d513d98002b8599dcb201a17a7374408c6347691c4523f8a9c12d522195646 ...

  9. lepus bug

    ------------------------------------------------BUG fix-------------------------------------------- ...

  10. WPF之TabControl控件用法

    先创建实体基类:NotificationObject(用来被实体类继承) 实现属性更改通知接口: using System; using System.Collections.Generic; usi ...