2010-01-29 124 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