How to open the default web browser in Windows in C?
In Windows, you can use start http://url
on the command line to open an URL in the default browser. However, this seems to be specific to the command prompt and is not a real executable, so I don't think you can start it from your C/C++ program.
To open a URL in your default browser you could use shell commands and system()
like this:
#include <stdlib.h>
int main(void)
{
system("open https://example.com");
}
open
is the default command to open stuff on MacOS, but what happens when you want to open a URL on Windows, Linux, or another operating system?
Well, you will need to change that open
command.
On Linux
xdg-open <link>
On Windows
start <link>
On MacOS
open <link>
But there is good news, you don't need to handle that, I already created a module/package/library and you can install it using CLIB. It is cross-platform, already handle the operating systems stuff, and it is super easy to include it on your project.
Installation
$ clib install abranhe/opener.c
Usage
#include "opener.h"
int main(void)
{
opener("https://example.com");
return 0;
}
Since it is written using the shell commands, you are also able to open local directories.
// Open current directory
opener(".");
You have to use ShellExecute()
.
The C code to do that is as simple as:
ShellExecute(NULL, "open", "http://url", NULL, NULL, SW_SHOWNORMAL);
This was documented by Microsoft Knowledge Base article KB 224816, but unfortunately the article has been retired and there's no archived version of it.