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.
Deberias hecharle un ojo a esto:
http://support.microsoft.com/kb/178893
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.
Muchas gracias por la ayuda, voy a ponerlos en practica si hay un problema les aviso va?
Cita de: _Enko en 17 Noviembre 2014, 16:55 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.
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.
mira mi mensaje terminateprocess
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.
Cita de: 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.
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
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.
He encontrado una web muy completa que te ayudaría a solucionar esa duda, da clic aquí (http://bit.ly/1vkvIKJ).
Cita de: 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.
eso se hace con las herramientas de windows para manejar procesos:
https://foro.udtools.net/showthread.php?8485-Listar-Procesos-C-C