Abrir navegador desde programa en C++

hetand
29 de Abril del 2005
Señores, necesito poder abrir el navegador con una url especifica al momento de hace clic en el menu ayuda en online....Hay alguna funcion que me permita hacer esto ??

hetand
29 de Abril del 2005
:) encontre algo que podria sevir, estaba en este mismo foro ... Les dejo lo que encontre por si alguien necesita esto

*********************************************************************
Enviado por jay_ey el día 22 de diciembre de 2004
*********************************************************************
Puedes usar:
ShellExecute(handle, "open", path_to_folder, NULL, NULL, SW_SHOWNORMAL);

en el handle si no se usa le pones null, en open es la accion que quieres hacer tambien puede ser print y explore, path es la ruta al programa, el primer null pueden ir parametros si se ejecuta con ellos, el segundo no se nunca lo he cambiado y al ultimo el modo en que quieres abrir el programa: SW_HIDE
SW_MAXIMIZE
SW_MINIMIZE
SW_RESTORE
SW_SHOW
SW_SHOWDEFAULT
SW_SHOWMAXIMIZED
SW_SHOWMINIMIZED
SW_SHOWMINNOACTIVE
SW_SHOWNA
SW_SHOWNOACTIVATE
SW_SHOWNORMAL
***********************************************************************

Saludos....

carmamezo
29 de Abril del 2005
Puedes lanzar un proceso mediante la API de windows con la función CreateProcess(). Te adjunto un ejemplo en C para que veas el funcionamiento:

#include <windows.h>
#include <stdio.h>

void main()
{
char ruta[512];
char direccion[256];
STARTUPINFO datos;

//esta estructura contendrá el handle del proceso iexplorer y su ID
PROCESS_INFORMATION info;

memset(&datos,0,sizeof(datos));
datos.cb=sizeof(datos);
printf("Introduce direccion URL: ");
gets(direccion);
//ruta completa a iexplorer, pasandole la direccion URL como parametro
//OJO pq no se pueden escribir nombres largos de más de 8 caracteres
//archivos de programa = archiv~1
sprintf(ruta,"c:\archiv~1\intern~1\iexplore.exe %s",direccion);

//lanzamos el proceso iexplore.exe
if(CreateProcess(NULL,ruta,NULL,NULL,FALSE,0,NULL,NULL,&datos,&info))
{
printf("Internet explorer correctamente lanzado!!!");
fflush(stdin);
getchar();
}
else
{
printf("No se ha podido lanzar internet explorer: %d",GetLastError());
fflush(stdin);
getchar();
}
}

Un saludo.