最近在脚本中通过WScript.Shell执行命令行,实现IE打开Chrome的功能。
JS代码如下:
1 var singleurl = window.location.href; 2 var isChrome = navigator.userAgent.indexOf("Chrome") > -1; 3 if(!isChrome) 4 { 5 var objShell= new ActiveXObject("WScript.Shell"); 6 objShell.Run('cmd.exe /c start chrome "'+singleurl+'"' ,1,true); 7 }
由于客户环境中 Chrome是绿色版的,把Chrome.exe的绝对路径放入到环境变量path后,在windows的CMD窗口中可以通过start chrome打开,但是在JS中运行如上代码始终提示“windows找不到文件chrome,请确定文件名是否正确”。搜索了很长时间,终于找到解决方案,需要在注册表HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths 中把chrome的路径增加上,在JS中才可以打开。
CMD中 Start命令打开可执行文件的搜索路径范围如下:
当前的工作目录。
环境变量的所有目录路径,以便为列在PATH。
只需键入命令提示符窗口,
set path
即可查看PATH中的所有目录以及PATHEXT中的所有文件扩展名。请注意,每个用户帐户都有自己的PATH。因此,系统帐户的PATH通常与标准用户帐户的PATH不同。这对于使用命令runas运行批处理文件或使用其他帐户运行任务调度程序非常重要。
在注册表中查看
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths
HKEY_CURRENT_USER \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ App Paths
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths
HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \应用路径
以上内容参考资料:http://www.imooc.com/wenda/detail/586407