IE11下执行JS调用exe报Automation server无法创建对象求助
我看到你尝试用这段JavaScript代码调用本地EXE文件:
var objShell = new ActiveXObject("WScript.shell"); objShell.run('C:/Program Files (x86)/IBM/WAcoount.exe', 1, false);
结果遇到了Automation server can't create object的错误,而且已经调整了IE11的ActiveX安全设置但问题依然存在。下面是几个你可以尝试的排查和解决方向:
重新注册WScript.Shell控件
ActiveX控件的注册信息偶尔会损坏,导致无法创建对象。你可以以管理员身份打开命令提示符,执行以下命令重新注册:regsvr32.exe wshom.ocx执行成功后会弹出注册成功的提示框,之后重启IE再测试你的代码。
检查对应安全区域的设置
你已经启用了ActiveX相关选项,但要注意:IE的安全设置是分区域的。如果你的HTML文件是本地文件,它默认属于「本地Intranet」区域,你需要进入该区域的自定义级别设置,同样启用「运行ActiveX控件和插件」以及「初始化并脚本化未标记为安全的ActiveX控件」选项,而不是只修改Internet区域的设置。尝试32位版本的IE(64位系统)
如果你用的是64位Windows系统,IE有32位和64位两个版本。WScript.Shell在64位IE环境下可能存在兼容性问题,你可以找到32位IE的执行文件(通常路径是C:\Program Files (x86)\Internet Explorer\iexplore.exe),用它来打开你的页面再测试。提升权限运行IE
用户账户控制(UAC)或者权限限制可能阻止了ActiveX控件的创建。尝试右键点击IE图标,选择「以管理员身份运行」,然后再加载你的代码页面。检查文件路径的拼写错误
最后注意一下你代码里的EXE文件名:WAcoount.exe是不是多打了一个o?正确的文件名会不会是WAccount.exe?虽然这不是导致ActiveX创建失败的直接原因,但如果文件名错误,后续运行也会出问题,先确认这个细节。
内容的提问来源于stack exchange,提问作者Abhishek Mahapatra

