Utilizo el siguiente código para asignar una consola para una aplicación WinForm. La ventana de la consola se muestra con éxito y la salida está allí. Pero cuando cierro la ventana de la Consola, mi aplicación WinForm se cierra al mismo tiempo. ¿Por qué? Quiero mantener la ventana de WinForm.Asignar una consola para una aplicación WinForm
private void btn_to_console_Click(object sender, EventArgs e)
{
if (NativeMethods.AllocConsole())
{
lbl_console_alloc_result.Text = "Console allocation successfully!";
IntPtr stdHandle = NativeMethods.GetStdHandle(NativeMethods.STD_OUTPUT_HANDLE);
Console.WriteLine("from WinForm to Console!");
lbl_console_alloc_result.Text = Console.ReadLine();
}
else
lbl_console_alloc_result.Text = "Console allocation failed!";
}
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "GetStdHandle")]
public static extern System.IntPtr GetStdHandle(Int32 nStdHandle);
/// Return Type: BOOL->int
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "AllocConsole")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool AllocConsole();
Gracias de antemano ...
Compruebe este hilo: http://stackoverflow.com/questions/533491/how-to-use-setconsolehandler-to-block-exit-calls –
gracias, nobugz. Ayuda. : D – smwikipedia