如何在C中打开Windows中的默认Web浏览器?

Dan*_*iel 10 c windows

在Windows的C/C++中,如何使用默认浏览器打开网站?在Mac OS X中,我这样做system("open http://url");

lor*_*ova 19

你必须使用ShellExecute().

这样做的C代码很简单:

ShellExecute(NULL, "open", "http://url", NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

这是由Microsoft知识库文章KB 224816记录的,但不幸的是该文章已经退役,并且没有它的存档版本.


Abr*_*dez 7

要在默认浏览器中打开 URL,您可以使用 shell 命令,system()如下所示:

#include <stdlib.h>

int main(void)
{
  system("open https://example.com");
}
Run Code Online (Sandbox Code Playgroud)

open是在 MacOS 上打开内容的默认命令,但是当您想在 Windows、Linux 或其他操作系统上打开 URL 时会发生什么?

好吧,您需要更改该open命令。

在 Linux 上

xdg-open <link>
Run Code Online (Sandbox Code Playgroud)

在 Windows 上

start <link>
Run Code Online (Sandbox Code Playgroud)

在 MacOS 上

open <link>
Run Code Online (Sandbox Code Playgroud)

但有个好消息,您不需要处理这个问题,我已经创建了一个模块/包/库,您可以使用 CLIB安装它。它是跨平台的,已经处理操作系统的东西,并且将它包含在您的项目中非常容易。

安装

$ clib install abranhe/opener.c
Run Code Online (Sandbox Code Playgroud)

用法

#include "opener.h"

int main(void)
{
    opener("https://example.com");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

由于它是使用 shell 命令编写的,因此您还可以打开本地目录。

// Open current directory
opener(".");
Run Code Online (Sandbox Code Playgroud)