elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejecutar un programa en C desde otro programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ejecutar un programa en C desde otro programa en C  (Leído 28,147 veces)
mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
Ejecutar un programa en C desde otro programa en C
« 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...........


« Última modificación: 5 Abril 2011, 09:36 am por mapers » En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #1 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.


En línea

gxg

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #2 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.
« Última modificación: 5 Abril 2011, 14:04 pm por gxg » En línea

Saberuneko


Desconectado Desconectado

Mensajes: 2.194



Ver Perfil WWW
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #3 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
En línea

mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #4 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
« Última modificación: 6 Abril 2011, 11:14 am por mapers » En línea

dooque

Desconectado Desconectado

Mensajes: 170



Ver Perfil
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #5 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
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!
« Última modificación: 6 Abril 2011, 16:19 pm por dooque » En línea

Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.  -- Kernighan
mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #6 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
« Última modificación: 6 Abril 2011, 19:15 pm por mapers » En línea

d(-_-)b


Desconectado Desconectado

Mensajes: 1.331



Ver Perfil WWW
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #7 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...
En línea

Max 400; caracteres restantes: 366
mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #8 en: 6 Abril 2011, 19:21 pm »

Y para mi intruccion como seria con el ShellExecute...........
En línea

d(-_-)b


Desconectado Desconectado

Mensajes: 1.331



Ver Perfil WWW
Re: Ejecutar un programa en C desde otro programa en C
« Respuesta #9 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...
En línea

Max 400; caracteres restantes: 366
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines