¿Es posible minimizar la aplicación de consola del código sin el uso de importaciones de DLL?

[DllImport("Kernel32.dll", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
private static extern IntPtr GetConsoleWindow();

[DllImport("User32.dll", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool ShowWindow([In] IntPtr hWnd, [In] Int32 nCmdShow);

Hasta ahora solo encontré soluciones que requieren esto y me pregunto si es imposible sin él.

0
benderto 4 abr. 2017 a las 16:26

2 respuestas

La mejor respuesta

No

Las aplicaciones de consola, o cualquier aplicación de línea de comandos que se ejecute a través de la consola, no tienen suficiente acceso a la ventana que aloja la consola. Casi no tiene sentido tener esta posibilidad para casi todas las instancias donde se utilizan aplicaciones de consola.

En muchos casos, tal ventana podría no existir.

Piense en una sesión de consola remota, la aplicación se está ejecutando en otra máquina, solo recibe el resultado enviado a su consola. ¿Cómo podría la aplicación remota preocuparse por la ventana que está utilizando? Por lo que sabe la aplicación remota, "usted" podría ser un script y ni siquiera hay una ventana para comenzar.

2
r41n 4 abr. 2017 a las 14:53

Como r41n ya dijo, No.

Sin embargo, si su intención era ocultar la consola, y la aplicación no requiere ninguna entrada del usuario, debería poder cambiar el tipo de salida a Aplicación de Windows en la configuración de la aplicación. Esto ocultará la consola al inicio

0
Mr Guy 4 abr. 2017 a las 21:44