Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 5 Abril 2011, 09:34 AM

Título: Ejecutar un programa en C desde otro programa en C
Publicado por: mapers en 5 Abril 2011, 09:34 AM
Buenas señores necesito de su ayuda.No se si  existira alguna funcion en l aque pueda ejecutar un programa desde otro programa........o multiprogramas a la vez gracias de antemano ..............
Encontre por google  la funcion ShellExecute().... pero no se como se usa .......o existe otro metodo...........
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: Akai en 5 Abril 2011, 09:49 AM
Depende del sistema operativo en el que estés.

En linux tienes la opción de hacer un fork y luego un exec para cambiar el hijo por el otro programa.

En windows imagino que sería algo similar, pero no se exactamente qué método se usa.
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: gxg en 5 Abril 2011, 14:01 PM
Si haces system("c:\programa.exe"); ejecutaras el programa, pero tiene una gran pega, que hasta que no termine de ejecutarse no seguira a la siguiente linea de codigo.

Existe una solucion muy fea para esto pero que te funcionara, creas una acceso directo al programa, por ejemplo programa.lnk y si haces system("c:\programa.lnk"); se ejecutara el programa y aunque tenga un bucle infinito seguida a la siguiente linea de codigo.
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: Saberuneko en 5 Abril 2011, 14:03 PM
Cita de: gxg en  5 Abril 2011, 14:01 PM
Si haces system("c:\programa.exe"); ejecutaras el programa, pero tiene una gran pega, que hasta que no termine de ejecutarse no seguira a la siguiente linea de codigo.

Eso solo vale para windows. Pero funciona.

NOTA: Para hacer uso de la funcion "system()" necesitaras incluír la librería stdlib.h
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: mapers en 6 Abril 2011, 11:04 AM
No en realidad a mi no me funciona con esa funcion .......... no hay otra manera de poder hacerlo............ osea me refiero a que cuando  lo ejecute salga en otra ventana y no en la misma  .... si me entienden maso menos verdad .... que no se vea en la misma ventana si no que abra otra ...algo asi como un START /D y en esa ventana nueva que se corra el programa
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: dooque en 6 Abril 2011, 16:16 PM
En Linux es como dice Akai, fork() + exec().

En Windows podes usar la llamada al sistema CreateProcess():
http://msdn.microsoft.com/en-us/library/ms682425%28v=vs.85%29.aspx (http://msdn.microsoft.com/en-us/library/ms682425%28v=vs.85%29.aspx)
O tambien alguna de la familia de funciones spawn():
http://msdn.microsoft.com/en-us/library/20y988d2%28v=vs.71%29.aspx
y hay algunas mas por ahi como usar popen() por ejemplo.

Nota: Todas las formas de crear un proceso es windows terminan en la llamada al sistema CreateProcess().

PD: Aca un conjunto de funciones en windows para el manejo de hilos y procesos:
http://msdn.microsoft.com/en-us/library/ms684847%28v=VS.85%29.aspx

Saludos!
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: mapers en 6 Abril 2011, 19:00 PM
mira tengo esta ruta me dijeron que as asi se podia pero nada

Código (cpp) [Seleccionar]

system("START G:\ archivos \Laboratorio \archivos_1cursos.exe ");


Esa es mi ruta :D a ver como lo pondrias tu...........
pero me dijeron  que con :
Código (cpp) [Seleccionar]

WinExec("C:\\Program Files\\MyApp", ...)   

tambien se podria pero no se que parametros colocarle para que me ejecute la cmd asi tipo Start
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: d(-_-)b en 6 Abril 2011, 19:15 PM
Cita de: mapers en  5 Abril 2011, 09:34 AM
Buenas señores necesito de su ayuda.No se si  existira alguna funcion en l aque pueda ejecutar un programa desde otro programa........o multiprogramas a la vez gracias de antemano ..............
Encontre por google  la funcion ShellExecute().... pero no se como se usa .......o existe otro metodo...........

http://foro.elhacker.net/programacion_cc/no_consigo_hacer_funcionar_a_shellexecute-t323107.0.html;msg1596606#msg1596606

saludos...
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: mapers en 6 Abril 2011, 19:21 PM
Y para mi intruccion como seria con el ShellExecute...........
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: d(-_-)b en 6 Abril 2011, 19:31 PM
Cita de: mapers en  6 Abril 2011, 19:21 PM
Y para mi intruccion como seria con el ShellExecute...........

la MSDN te lo explica muy bien.

http://msdn.microsoft.com/en-us/library/bb762153%28v=vs.85%29.aspx

saludos...
Título: Re: Ejecutar un programa en C desde otro programa en C
Publicado por: mapers en 6 Abril 2011, 19:33 PM
pero no corre ...............:S