2011-08-16 12 views
5

Necesito hacer que una aplicación de la GUI de Windows pueda ejecutarse en la consola, así que adjunto la consola al proceso cuando se invoca la aplicación con una línea de comando. Sin embargo, después de la salida de la aplicación, el indicador de la consola con la ruta no se muestra a menos que se presione la tecla ENTER. ¿Hay alguna manera de que el mensaje con la ruta se muestre directamente sin presionar la tecla Entrar? Gracias.El problema de la consola de conexión

+0

http://blogs.msdn.com/b/oldnewthing/archive/2009/01/01/9259142.aspx –

+1

Ya ha mostrado el mensaje, justo cuando su programa comenzó a ejecutarse. Tendrás que esperar. Use start/wait yourapp.exe. Si eso no es lo que quieres, entonces necesitarás usar AllocConsole(). –

Respuesta

4

Respuesta corta: Esto no es posible.

Respuesta larga: Bueno, es posible si estás interesado en relajar tus requisitos un poco. Básicamente tiene tres opciones:

  1. Lo que ya ha hecho. Puede adjuntar la aplicación GUI a una consola, pero cmd.exe no esperará a que la aplicación salga.
  2. Cree una aplicación GUI y abra la consola en la aplicación GUI. La consola solo durará tanto como la aplicación.
  3. O puede reestructurar su aplicación/fuente un poco y proporcionar dos ejecutables, GUI uno que inicia GUI directamente, otro que es ejecutable por consola.
+0

Gracias por su respuesta. Mientras investigaba esto, encontré otra opción para iniciar la aplicación usando el [comando de inicio] (http://www.computerhope.com/starthlp.htm). p.ej. 'start/wait application.exe paramaters'. – Dennis

1

En C#, uso SendKeys.SendWait("{ENTER}"); para hacer eso. Creo que en C++, la función keybd_event hace algo similar.

+0

Funciona para mí. :) – Alexandru

1

Al igual que Autodesk Maya con MayaBatch, puede crear una pequeña aplicación de consola que ejecute básicamente su aplicación GUI con CreateProcess y espere con WaitForSingleObject.

Deberá usar esta versión "por lotes" de su aplicación en la consola.

Cuestiones relacionadas