SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: luigidor en Jueves 22 de Octubre de 2009, 13:49

Título: CreateProcess ¿cómo continuo?
Publicado por: luigidor en Jueves 22 de Octubre de 2009, 13:49
Buenas,

He abierto una aplicación .exe desde C++ con CreateProcess y funciona perfectamente.

Cierro la aplicación con TerminateProcess y funciona perfectamente.

PERO,

La aplicación la abro desde un botón y lo que quiero es que si vuelvo a pulsar dicho botón me muestre la ventana en primer plano (la ya abierta) Y NO ME ABRA UNA NUEVA (como si abriera un nuevo proceso). ¿Cómo hago esto? ¿Puedo utilizar el 'dwProcessId' ó el 'hProcess' para volver a mostrar la ventana en primer plano, sin abrir otra nueva e idéntica?

Gracias de antemano a tod@s
Título: Re: CreateProcess ¿cómo continuo?
Publicado por: Eternal Idol en Domingo 25 de Octubre de 2009, 08:16
Usa EnumWindow para enumerar todas las ventanas, por cada HWND enumerado llama a GetWindowThreadProcessId y compara el id del proceso retornado con el que creaste. Con ShowWindow podes mostrar la ventana y con SendMessage (WM_QUIT) tal vez puedas cerrar el programa correctamente (TerminateProcess no es un cierre limpio).

Usa la MSDN (http://msdn.microsoft.com) para obtener la documentacion de las funciones.
Título: Re: CreateProcess ¿cómo continuo?
Publicado por: luigidor en Miércoles 28 de Octubre de 2009, 09:49
Muchísimas gracias Eternal Idol.

Funciona perfectamente...
Título: Re: CreateProcess ¿cómo continuo?
Publicado por: Eternal Idol en Miércoles 28 de Octubre de 2009, 09:58
De nadas  :comp: