如何让ruby调用默认浏览器打开本地文件

时间:2010-01-29 03:36:56

标签: ruby

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

1 个答案:

答案 0 :(得分:1)

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

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