Я хочу, чтобы мой код на C ++ открывал URL-адрес, однако все потоки в Интернете продвигаются с помощью ShellExecute с уже указанным URL-адресом. Мой код требует, чтобы пользователь ввел URL-адрес, а затем программа должна открыть его в браузере, чтобы URL-адрес был в форме строки. Очень признателен.

1
Shannon D'souza 22 Авг 2014 в 13:22
2
Возможный дубликат Открыть URL-адрес из кода C++
 – 
MatthiasB
22 Авг 2014 в 13:25
1
Также актуально: открыть ссылку C++ с помощью ShellExecute. Можете ли вы объяснить проблему с ShellExecute? вы можете передать URL-адрес в качестве параметра функции, чтобы вы могли передать URL-адрес из пользовательского ввода.
 – 
MatthiasB
22 Авг 2014 в 13:29

2 ответа

Лучший ответ

Что-то такое :

std::string myUrl;
std::cin >> myUrl;
system(std::string("start " + myUrl).c_str());

?

2
vincentp 22 Авг 2014 в 13:26
Да, точно! Я использовал указатели, поэтому мне пришлось внести несколько изменений, но это сработало! Спасибо.
 – 
Shannon D'souza
22 Авг 2014 в 13:41
system() открывает консоль. Есть ли способ удержать его от этого?
 – 
Donald Duck
12 Сен 2016 в 15:41

Я считаю, что это должно помочь вам, если вы используете Windows:

    std::cout<<"Enter the link: ";
    std::string link;
    std::cin>>link;
    ShellExecute(NULL, "open", link.c_str(), NULL, NULL, SW_SHOWNORMAL);
2
bl618515 22 Авг 2014 в 13:37
Это дает сообщение об ошибке «HINSTANCE ShellExecuteW (HWND, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, INT)»: невозможно преобразовать аргумент 2 из «const char [5]» в «LPCWSTR». Должно быть ShellExecute(NULL, L"open", link.c_str(), NULL, NULL, SW_SHOWNORMAL);.
 – 
Donald Duck
12 Сен 2016 в 15:44
На самом деле, это должно быть _T("open"), если вы хотите, чтобы он работал со всеми форматами символов. За исключением того, что вам также нужно передать ссылку в виде широкой строки. Лучше использовать явные варианты ShellExecuteA или ShellExecuteW по мере необходимости.
 – 
paddy
27 Май 2019 в 10:23