как позволить ruby ​​вызвать браузер по умолчанию для открытия локального файла - PullRequest
3 голосов
/ 29 января 2010

В этот вопрос , я считаю, что использование system('start http://www.google.com') в порядке. Если файл находится на локальном диске, использование system('start file:///c:/temp/a.html') не работает. Как заставить Ruby получить браузер по умолчанию для открытия локального файла?

1 Ответ

1 голос
/ 29 января 2010

Что вы получите, если дважды щелкнуть HTML-файл в проводнике Windows? Если это не браузер, то это ваша проблема. Ключевое слово start запускает путь через функцию ShellExecute, поскольку http: // URL-адреса знают, что открыть это в браузере, если это файл, это зависит от расширения файла, если ваша система имеет .html, указывающий на например, блокнот (потому что в прошлом вы устанавливали его в блокнот), он всегда будет открывать его в этой программе, если вы не зайдете и не измените его.

С общей точки зрения, вы мало что можете сделать, если вы можете получить доступ к реестру Windows через Ruby, тогда вы можете запросить значение по умолчанию HKEY_CLASSES_ROOT\http\shell\open\command, которое содержит командную строку для текущего браузера, привязанного к Протокол HTTP, вы можете использовать его для создания полного пути (замените% 1 строкой URL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...