Ok, probablemente tenga una respuesta realmente simple, pero nunca he intentado hacerlo antes: ¿cómo se inicia una página web desde dentro de una aplicación? Ya sabe, "haga clic aquí para ir a nuestras preguntas frecuentes", y cuando lo haga, inicia su navegador web predeterminado y va a su página. Estoy trabajando en C/C++ en Windows, pero si hay una forma más amplia y portátil de hacerlo, me gustaría saberlo también.Inicie la página web desde mi aplicación
Respuesta
#include <windows.h>
void main()
{
ShellExecute(NULL, "open", "http://yourwebpage.com",
NULL, NULL, SW_SHOWNORMAL);
}
Creo que desea utilizar la función ShellExecute() que debe respetar la elección de los usuarios del navegador predeterminado.
Puede usar la función ShellExecute. Código de ejemplo:
ShellExecute(NULL, "open", "http://stackoverflow.com", "", ".", SW_SHOWDEFAULT);
Por favor, lea la docs para ShellExecute de cerca. Para realmente proteger su código a prueba de balas, recomiendan inicializar COM. Vea los documentos aquí, y busque la parte que dice "COM debe inicializarse como se muestra aquí". La respuesta corta es que hacer esto (COM si aún no lo ha init'd):
CoInitializeEx (NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
Maldita COM ataca de nuevo .. – Everyone
Para el registro (ya que preguntas para una opción multiplataforma) , el siguiente funciona bien en Linux:
#include <unistd.h>
#include <stdlib.h>
void launch(const std::string &url)
{
std::string browser = getenv("BROWSER");
if(browser == "") return;
char *args[3];
args[0] = (char*)browser.c_str();
args[1] = (char*)url.c_str();
args[2] = 0;
pid_t pid = fork();
if(!pid)
execvp(browser.c_str(), args);
}
Utilizar como:
launch("http://example.com");
El env de BROWSER no está configurado en Ubuntu. Ese código se bloquea cuando getenv devuelve NULL: 'terminate called después de lanzar una instancia de 'std :: logic_error' what(): basic_string :: _ S_construct null no válido'. –
Por alguna razón, ShellExecute no funcionan a veces si la aplicación está a punto de termin Comimos justo después de llamarlo. Agregamos Sleep (5000) después de ShellExecute y nos ayuda.
- 1. Inicie la aplicación RCP desde main()
- 2. Inicie Android Market desde la aplicación
- 3. Android: inicie Firefox desde la aplicación
- 4. ¿Cómo mostrar la página web en mi aplicación?
- 5. Inicie la aplicación con URL
- 6. obtener el evento de clic desde la página web en mi aplicación de Android
- 7. ¿Abrir la aplicación iPod desde mi aplicación?
- 8. Inicie la aplicación Android sin actividad principal e inicie el servicio al iniciar la aplicación
- 9. Grabación de audio desde la página web
- 10. Android: ¿puedo pasar un parámetro cuando inicie otras aplicaciones desde mi aplicación?
- 11. Cómo la aplicación Java WebStart Obtiene la dirección MAC para acceder a mi página web
- 12. Inicie la aplicación WinForm Aerosnaped Right Aligned
- 13. Alertas al navegar desde una página web
- 14. ¿Cómo puedo proteger mi aplicación web java?
- 15. ¿Cómo ejecutar la aplicación C++ en la página web?
- 16. Apache: ¿cómo puedo acceder a mi página web desde una computadora fuera de mi red?
- 17. contestar la llamada entrante desde mi aplicación
- 18. Presione el botón para abrir la página web desde la aplicación
- 19. ¿Cómo configuro la página predeterminada de mi aplicación en IIS7?
- 20. ¿Alguien sabe cómo abrir una página de fan de fb en la aplicación iphone desde la página web?
- 21. instalación de la aplicación de la página web
- 22. ¿Cómo construir la integración de LDAP para mi aplicación web?
- 23. malicioso código javascript en mi página web
- 24. ¿Puedo deshabilitar la actualización del navegador en mi aplicación web?
- 25. ¿HTTPS ralentizará la carga de páginas de mi aplicación web?
- 26. Cómo ejecutar un EXE desde la página web (asp.net)
- 27. ¿Cómo abro la aplicación de configuración desde mi aplicación?
- 28. ¿Cómo abrir la aplicación iphone mail desde mi propia aplicación?
- 29. Lanzamiento de la aplicación externa desde mi aplicación
- 30. ¿Cómo ejecutar la aplicación iphone GameCenter desde mi aplicación?
¿Funciona sin privilegios de administrador? – foobar