Как открыть веб-браузер по умолчанию в Windows на C?

В C/С++ в Windows, как мне открыть веб-сайт, используя браузер по умолчанию? В Mac OS X я делаю system("open http://url");

Ответ 1

Вы должны использовать ShellExecute().

Код C для этого так же просто, как:

ShellExecute(NULL, "open", "http://url", NULL, NULL, SW_SHOWNORMAL);

Это было задокументировано в статье базы знаний Майкрософт KB 224816, но, к сожалению, статья была удалена, и ее архивная версия отсутствует.

Ответ 2

В Windows вы можете использовать start http://url в командной строке, чтобы открыть URL-адрес в браузере по умолчанию. Однако это похоже на командную строку и не является реальным исполняемым файлом, поэтому я не думаю, что вы можете запустить его из своей программы на C/С++.

Ответ 3

Чтобы открыть URL в браузере по умолчанию, вы можете использовать команды оболочки и system() например:

#include <stdlib.h>

int main(void)
{
  system("open https://example.com");
}

open - это команда по умолчанию для открытия содержимого в MacOS, но что происходит, когда вы хотите открыть URL-адрес в Windows, Linux или другой операционной системе?

Ну, вам нужно изменить эту команду open.

В линуксе

xdg-open <link>

На винде

start <link>

На MacOS

open <link>

Но есть и хорошие новости, вам не нужно с этим справляться, я уже создал модуль/пакет/библиотеку, и вы можете установить его с помощью CLIB. Он кроссплатформенный, уже работает с операционными системами, и его очень легко включить в ваш проект.

Монтаж

$ clib install abranhe/opener.c

использование

#include "opener.h"

int main(void)
{
    opener("https://example.com");
    return 0;
}

Поскольку он написан с использованием команд оболочки, вы также можете открывать локальные каталоги.

// Open current directory
opener(".");