Asp.Net 之 通过调用 WScript.Shell 启动本地 exe 程序时产生“ automation服务器不能创建对象 ”的错误

我们经常需要通过生成 ActiveXObject("WScript.Shell"); 来调用某一exe文件。

  设置网页打印的页眉页脚为空:

    var HKEY_Root,HKEY_Path,HKEY_Key;    
    HKEY_Root="HKEY_CURRENT_USER";    
    HKEY_Path="//software//Microsoft//Internet Explorer\\PageSetup\\"; 
    function PageSetup_Null()   
    {    
        try {    
            var Wsh=new ActiveXObject("WScript.Shell");    
            HKEY_Key="header";    
            Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");    
            HKEY_Key="footer";    
            Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");    
        }  catch(e)
        {
            alert("Error:"+e.message+"。");
        }    
    }

  调用 exe 程序,调用计算器:

{ 
     var   wshShell   =   new   ActiveXObject("WScript.Shell");   
     wshShell.run("calc.exe");   
} 

  

  问题表现:

  经常会报 “automation服务器不能创建对象” 的错误。


  解决方案:

  1、如果是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,
  开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll即可

  2、安全模式设置成“ 中 ”,如果javascript脚本中报这个错误,
  还应将IE的安全设置“不允许运行未标记为安全的activeX控件”启用即可。

  注意如果您将相应的网站设成“受信任的站点”,
  必须对“受信任的站点”进行相应的IE安全设置,此时如果对“Internet”IE设置将是徒劳的。

  3、有些脚本需要微软的 MSXML 控件才能进入。
  当使用 IE 5 以上版本的缺省安全模式时,会提示是否接受 MSXML 控件,
  如果接受,MSXML 将自动安装到您的机器上(得等上几分钟)。
  如果自动安装不成功,可以自行下载和安装 MSXML 3.0 SP7。
  有时是由于msxml 3服务被关掉了,使用regsvr32 msxml3.dll即可

 

posted on 2015-09-06 20:02  Now,DayBreak  阅读(1175)  评论(0编辑  收藏  举报