在vlc扩展中使用lua打开Web浏览器

时间:2012-06-22 20:36:21

标签: lua vlc

我正在写一个VLC扩展,我想在网络浏览器中打开一些网址(当然是在lua中)。到目前为止,我还没有找到任何从lua脚本打开Web浏览器的相关代码。我有什么方法可以执行这项任务(例如谷歌搜索文件播放)?

我可以使用对话框创建指向网址的链接,但我想跳过此步骤并在没有任何用户输入的情况下打开它。

我是lua的初学者,并且正在制作VLC扩展(几天前刚刚开始)并且从那时起就开始尝试。

1 个答案:

答案 0 :(得分:3)

确切的命令因操作系统而异:

  • 在Windows上:
    start http://example.com/
  • On * nix(最便携式选项):
    xdg-open "http://example.com/"
  • 在OSX上:
    open http://example.com/

以下Lua示例应适用于Windows,Linux和OSX(虽然我无法测试OSX) 它的工作原理是首先检查Lua的package.config \\目录分隔符(afaik,仅用于Windows)。这应该只留下支持uname的操作系统。然后我进行了一次飞跃,并假设Mac将识别为“达尔文”,因此任何不是* nix的东西。

显然,这不是详尽无遗。

-- Attempts to open a given URL in the system default browser, regardless of Operating System.
local open_cmd -- this needs to stay outside the function, or it'll re-sniff every time...
function open_url(url)
    if not open_cmd then
        if package.config:sub(1,1) == '\\' then -- windows
            open_cmd = function(url)
                -- Should work on anything since (and including) win'95
                os.execute(string.format('start "%s"', url))
            end
        -- the only systems left should understand uname...
        elseif (io.popen("uname -s"):read'*a') == "Darwin" then -- OSX/Darwin ? (I can not test.)
            open_cmd = function(url)
                -- I cannot test, but this should work on modern Macs.
                os.execute(string.format('open "%s"', url))
            end
        else -- that ought to only leave Linux
            open_cmd = function(url)
                -- should work on X-based distros.
                os.execute(string.format('xdg-open "%s"', url))
            end
        end
    end

    open_cmd(url)
end