调用WScript.Shell时产生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+"。");
        }   
      }

 

//调用计算器
{
     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 2009-05-28 17:39  mingal  阅读(8743)  评论(0编辑  收藏  举报