Hola Gentes,
Desde ya gracias por todas las respuestas que me van a dar.
Necesito ejecutar un programa en DOS desde Visual, pero no quiero que el usuario vuelva a tomar el control del programa Visual, hasta que finalice el programa que se está ejecutando en DOS.
Tienes que usar diferentes API, CreateProcessbyNum() para lanzar el programa y si quieres verificar si está activa o no, utilizas WaitforSingleObject().
Te adjunto un cusioso ejemplo que lanza una aplicación esperando a que termine pero demás sincroniza su ejecución y en segundo plano verifica lo ejecutado.