Foro de elhacker.net

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
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
  1. system("START G:\ archivos \Laboratorio \archivos_1cursos.exe ");
  2.  

Esa es mi ruta :D a ver como lo pondrias tu...........
pero me dijeron  que con :
Código
  1. WinExec("C:\\Program Files\\MyApp", ...)    
  2.  
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
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
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