2010-01-29 106 views
3

this question中,我发现使用system('start http://www.google.com')是可以的。如果该文件在本地磁盘中,但使用system('start file:///c:/temp/a.html')不起作用。我如何让Ruby获得默认浏览器来打开本地文件?如何让ruby调用默认浏览器打开localfile

+0

您是否尝试过不使用'file:///'部分? – 2010-01-29 03:40:25

+0

虽然适合我! – bhups 2010-01-29 04:19:13

回答

1

当您在Windows资源管理器中双击.html文件时,您会得到什么?如果它不是浏览器那么这就是你的问题。 'start'关键字通过ShellExecute函数推送路径,http:// URLs知道在浏览器中打开它,如果它是一个文件,它取决于文件的扩展名,如果你的系统有.html指向例如记事本(因为过去你已经将它设置为记事本),除非你专门改变它,否则它总是会在该程序中打开它。

从通用工作的角度来看,你可以做的事情不多,如果你可以访问Ruby下的Windows注册表,那么你可以查询HKEY_CLASSES_ROOT\http\shell\open\command默认值,其中包含当前浏览器的命令行绑定到HTTP协议,您可以使用它来构建完整路径(用URL字符串替换%1)。

+0

谢谢我发现它是我的电脑上的问题。 yes system('start file:/// c:/temp/a.html')效果很好。谢谢大家。 – Jian 2010-01-29 06:18:05

相关问题