C#AllocConsole重定向输入
我有一个Winforms应用程序,我想与之一起使用控制台,到目前为止,我使用AllocConsole()调用了它,并且可以按预期通过console.WriteLine成功地将内容打印到窗口 但是,用户无法在窗口中键入内容。我有没有遗漏什么,或者这是不可能实现的 编辑1:尝试使用SetConsoleMode Pinvoke,但仍无法输入控制台窗口。代码如下所示:C#AllocConsole重定向输入,c#,winforms,console,C#,Winforms,Console,我有一个Winforms应用程序,我想与之一起使用控制台,到目前为止,我使用AllocConsole()调用了它,并且可以按预期通过console.WriteLine成功地将内容打印到窗口 但是,用户无法在窗口中键入内容。我有没有遗漏什么,或者这是不可能实现的 编辑1:尝试使用SetConsoleMode Pinvoke,但仍无法输入控制台窗口。代码如下所示: [DllImport("kernel32")] static extern bool AllocConsole();
[DllImport("kernel32")]
static extern bool AllocConsole();
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
private enum ConsoleModes : uint
{
ENABLE_PROCESSED_INPUT = 0x0001,
ENABLE_LINE_INPUT = 0x0002,
ENABLE_ECHO_INPUT = 0x0004,
ENABLE_WINDOW_INPUT = 0x0008,
ENABLE_MOUSE_INPUT = 0x0010,
ENABLE_INSERT_MODE = 0x0020,
ENABLE_QUICK_EDIT_MODE = 0x0040,
ENABLE_EXTENDED_FLAGS = 0x0080,
ENABLE_AUTO_POSITION = 0x0100,
ENABLE_PROCESSED_OUTPUT = 0x0001,
ENABLE_WRAP_AT_EOL_OUTPUT = 0x0002,
}
#endregion
public Form1()
{
AllocConsole();
Console.WriteLine("Hi.. Write Below");
IntPtr ConInt = GetConsoleWindow();
SetConsoleMode(ConInt, (uint)ConsoleModes.ENABLE_WINDOW_INPUT);
InitializeComponent();
}
SetConsoleMode可能会有所帮助。