ActiveXObject创建错误"自动化服务器无法创建对象"

Asa*_*nka 15 javascript internet-explorer activex

我有一个非常简单的JavaScript代码,

<script language="javascript">          
         function RunExe()   
         {  
           w = new ActiveXObject("WScript.Shell");
           w.run('notepad.exe');
           return true;

         }  
</script>
    <form id="form1">
    <div>
      <input type="button" value="Run" onclick="return RunExe()" />
    </div>
    </form>
Run Code Online (Sandbox Code Playgroud)

其中创建一个activeX对象来运行notepad.exe,如果我将它保存在一个普通的html并在IE中运行它,它可以很好地打开记事本,但是如果我将它插入一个aspx页面并运行它,它会给出一个名为"自动化服务器无法创建对象"的错误,我用Google搜索了很多次,但我已经完成了IE安全性的事情,我认为这是ASP或IIS中的一些我无法弄清楚的东西.

您的建议和意见非常值得注意.

感谢名单

小智 24

这是由Internet Explorer的安全设置引起的.您可以通过更改Internet Explorer设置来解决此问题.转到设置 - > Internet选项 - >安全选项卡.您将看到不同的区域:i)Internet ii)本地Intranet iii)可信站点iv)受限制的站点.根据您的要求选择一个区域.我在localhost中运行我的应用程序,所以我选择了本地Intranet,然后单击自定义级别按钮.它会打开安全设置窗口.请启用Initialize并编写未标记为安全脚本选项的Activex控件.它应该可以正常工作.

在此输入图像描述

在此输入图像描述


scu*_*ffe 12

要实现这一点,您必须真正,真正地放松您的安全设置(通常不建议)

您需要将网站添加到"受信任区域",然后进入自定义设置(向下滚动约1/2页面)并更改:

ActiveX控件和插件 - 启用(或提示)...适用于您的代码的任何设置(我认为最后一个是您正在使用的设置) - "脚本ActiveX控件标记为安全的脚本*"

这一切都说,除非你有一个非常非常好的理由这样做 - 你在浏览器安全中开辟了一个主要的"漏洞"......非常谨慎地步骤......并且不要指望其他最终用户会愿意做同样的事.

  • @Asanka - 正如@epascarello所提到的,代码片段中没有任何内容会受到您正在使用的Web/app服务器的影响.如果脚本标记的输出使其成为您上面指出的HTML,那么它是否正确执行**完全取决于浏览器.如果脚本执行,您将收到"无法创建"错误...但您无法创建ActiveX对象.只有2个原因你不能... 1.)对象类型不存在(例如名称中的拼写错误)或2.)你没有*this*user,on*的权限这个*网站,在*这个*区域. (3认同)

epa*_*llo 7

那么你不能从记事本中运行代码,这意味着你要从文件系统中打开页面.又名c:/foo/bar/hello.html

当您从asp.net页面运行代码时,您将从localhost运行它.又名http:// loalhost:1234/assdf.html

其中每个都在IE上的不同安全区域中运行.


小智 7

我也有同样的问题并解决它.请仔细阅读链接

将您的站点添加到受信任区域并更改以下选项,即工具菜单 - > Internet选项 - >安全性 - >自定义级别 - >"初始化和脚本未标记为可安全执行脚本的ActiveX控件"

http://forums.codeguru.com/showthread.php?t=256114