How to open the default web browser in Windows in C?

前端 未结 3 1306
借酒劲吻你
借酒劲吻你 2020-12-16 12:56

In C in Windows, how do I open a website using the default browser? In Mac OS X, I do system(\"open http://url\");

相关标签:
3条回答
  • 2020-12-16 13:31

    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.

    0 讨论(0)
  • 2020-12-16 13:33

    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.

    0 讨论(0)
  • 2020-12-16 13:46

    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(".");
    
    0 讨论(0)
提交回复
热议问题