posicionamiento para consola comandos c# console window

para - posicionamiento en consola c#



traer una ventana de consola al frente en c# (4)

Es hacky, es horrible, pero funciona para mí (gracias, pinvoke.net !):

using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; public class Test { [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("user32.dll", EntryPoint="FindWindow", SetLastError = true)] static extern IntPtr FindWindowByCaption(IntPtr zeroOnly, string lpWindowName); public static void Main() { string originalTitle = Console.Title; string uniqueTitle = Guid.NewGuid().ToString(); Console.Title = uniqueTitle; Thread.Sleep(50); IntPtr handle = FindWindowByCaption(IntPtr.Zero, uniqueTitle); if (handle == IntPtr.Zero) { Console.WriteLine("Oops, cant find main window."); return; } Console.Title = originalTitle; while (true) { Thread.Sleep(3000); Console.WriteLine(SetForegroundWindow(handle)); } } }

¿Cómo puedo traer una ventana de aplicación de consola al frente en C # (especialmente cuando ejecuto el depurador de Visual Studio)?


Obtenga dos monitores (al menos) y abra VisualStudio en el monitor secundario. Cuando ejecuta su aplicación desde VisualStudio, se iniciará de manera predeterminada en el monitor principal. Como es la última aplicación que se abre, comienza en la parte superior y cambiar a VisualStudio no la afecta. Funciona para mí de todos modos.

Si aún no tienes un segundo monitor, en mi humilde opinión, deberías.


Esto es lo que haría.

[DllImport("kernel32.dll", ExactSpelling = true)] public static extern IntPtr GetConsoleWindow(); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SetForegroundWindow(IntPtr hWnd); public void BringConsoleToFront() { SetForegroundWindow(GetConsoleWindow()); }


Una respuesta tardía, pero utilicé el siguiente trabajo:

Si está ejecutando una aplicación de consola con Windows Forms y desea llevar la consola al frente del formulario, no hay una manera sensata de hacerlo, como hemos visto anteriormente. Sin embargo, hay una forma de hacerlo con Windows Forms: puede usar BringToFront() y SendToBack() para cambiar las capas de la ventana en su programa. Mi programa tenía una forma y una consola, la consola tenía que estar al frente, así que envié el formulario a la parte posterior.

Drawback: si su usuario es multitarea y desea que la consola esté al frente de todo, esto no funcionará. Sin embargo, si solo desea afectar las ventanas de su programa, esta es una solución adecuada.