最近在脚本中通过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命令打开可执行文件的搜索路径范围如下:

    1. 当前的工作目录。

    2. 环境变量的所有目录路径,以便为列在PATH。

      只需键入命令提示符窗口,set path即可查看PATH中的所有目录以及PATHEXT中的所有文件扩展名。

      请注意,每个用户帐户都有自己的PATH。因此,系统帐户的PATH通常与标准用户帐户的PATH不同。这对于使用命令runas运行批处理文件或使用其他帐户运行任务调度程序非常重要。

    3. 在注册表中查看

      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

01-09 01:49