如何检测是否可以使用C打开浏览器

时间:2015-03-15 09:52:57

标签: c browser cross-platform

所以,我正在用C编写一个应用程序,这要求我在用户的设备上打开一个浏览器到特定的URL。要在Windows上执行此操作,我将使用start;在Mac上,我会使用open;在Debian OS上,我会使用sensible-browser;在支持xdg-open的桌面环境中,我会使用它(All via system())。首先,这真的是通过C打开浏览器的最佳方式吗?似乎应该有一个更简单的方法。

我真正的问题是,如果这不起作用怎么办?如何检测设备是否可以打开(启用GUI,启用JS)的Web浏览器,或者上述方法之一是否无效?

这样的东西
    if browser can be opened,
        open browser
    else do X

有没有办法在C中执行此操作?如果是这样,它是什么?

1 个答案:

答案 0 :(得分:0)

没有。还有一个。

好的,这有点短。问题是你正在尝试运行一个非常复杂的应用程序,而你甚至不确定你想要运行什么,除非它必须涵盖一些模糊的声明规则。

某些,您必须实际指定要运行的代码。在Windows上,您可以通过使用COM自动化链接到Internet Explorer并将URL传递给它(在检查版本之后)来执行此操作。即使在Windows上,您 某些即开始"将启动一个你想要的类型的浏览器。

实际上某些的唯一方法是链接到您知道提供您想要的浏览器引擎。这是一个非常重要的工作只是为了某些并且有明显的缺点,所以大多数人都不会打扰。