Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: FMLTGRD en 17 Noviembre 2014, 08:23 am



Título: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: FMLTGRD en 17 Noviembre 2014, 08:23 am
Buenas noches,
Tengo un problema y quería ver si alguien tenia alguna idea para solucionarlo.
Trato de hacer un programa en C++ que lance otro archivo ejecutable y que tambien sea capaz de cerrarlo. He buscado en internet pero no he encontrado nada que me funcione.
Les agradezco de antemano y espero que puedan ayudarme.



 Perdon, se me olvido especificar que mi aplicacion debe correr en Windows.


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: someRandomCode en 17 Noviembre 2014, 12:29 pm
Deberias hecharle un ojo a esto:
http://support.microsoft.com/kb/178893


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: _Enko en 17 Noviembre 2014, 16:55 pm
Hola, puedes enviar un mensaje mediante SendMessage WM_CLOSE

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632617(v=vs.85).aspx

Seria como el evento de apretar ALT+F4 en la aplicación o hacer click en la X.

Para abrir una aplicación, me imagino que WinExec debería funcionar.



Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: FMLTGRD en 17 Noviembre 2014, 17:22 pm
Muchas gracias por la ayuda, voy a ponerlos en practica si hay un problema les aviso va?


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: daryo en 17 Noviembre 2014, 17:46 pm
Hola, puedes enviar un mensaje mediante SendMessage WM_CLOSE

no se.. eso no serviria si es un programa como notepad que pide confirmacion para cerrarse cuando hay cambios o si es un programa de consola.

tambien podrias usar. TerminateProcess
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714%28v=vs.85%29.aspx

para abrir un programa puedes usar winexec o shellexecute
http://msdn.microsoft.com/en-us/library/ms687393.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx

ya depende de que quieras hacer.


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: FMLTGRD en 17 Noviembre 2014, 22:55 pm
Bueno antes que nada gracias nuevamente,
Las soluciones parecen funcionar bien. El único problema es que sgun la documentacion los programas en consola no responden a este mensaje.
Por el momento me sirve bien, pero si alguien tiene alguna forma de tambien cerrar aplicaciones de consola tambien se lo agradecería.


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: daryo en 17 Noviembre 2014, 23:25 pm
mira mi mensaje terminateprocess


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: FMLTGRD en 17 Noviembre 2014, 23:28 pm
Me interesa muchisimo esto de terminateprocess y parece que si va funcionar. Ahora solo me queda una duda. Como le indico a la computadora el proceso indicado que debe de terminar.


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: daryo en 17 Noviembre 2014, 23:39 pm
Me interesa muchisimo esto de terminateprocess y parece que si va funcionar. Ahora solo me queda una duda. Como le indico a la computadora el proceso indicado que debe de terminar.


el handle(identificador) que le das como argumento es el del proceso que quieres cerrar :P hay varias formas de obtener ese handle con el nombre el titulo de la ventana con el nombre del proceso .


googleando xD: http://stackoverflow.com/questions/2443738/c-terminateprocess-function


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: FMLTGRD en 18 Noviembre 2014, 02:20 am
Ya casi lo logro, pero mi problema es cuando llamo a la funcion OpenProcess el ultimo parametro es el id del Proceso, pero no se como obtener el id del proceso exacto.


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: zShackra en 18 Noviembre 2014, 06:06 am
He encontrado una web muy completa que te ayudaría a solucionar esa duda, da clic aquí (http://bit.ly/1vkvIKJ).


Título: Re: Abrir y cerrar otro programa desde mi aplicación c++
Publicado por: daryo en 18 Noviembre 2014, 15:22 pm
Ya casi lo logro, pero mi problema es cuando llamo a la funcion OpenProcess el ultimo parametro es el id del Proceso, pero no se como obtener el id del proceso exacto.
eso se hace con las herramientas de windows para manejar procesos:
https://foro.udtools.net/showthread.php?8485-Listar-Procesos-C-C