C# 控制台。在窗体上写入行吗?

C# 控制台。在窗体上写入行吗?,c#,vb.net,command-line,cmd,C#,Vb.net,Command Line,Cmd,在WinForm项目中是否有写入控制台的方法 我知道我可以将项目类型更改为console,但仍然是WinForm,但是如果我从CMD启动程序,CMD的执行将停止,直到我的程序退出,如果我从控制台以Winforms启动应用程序,则不会发生这种情况,但我无法写入控制台 因此,问题是: 如何在WinForms上写入控制台,或者如何在从CMD启动我的应用程序时不停止CMD的执行(以避免在我的应用程序的CMD上使用“启动/B”)。您可以使用将进程附加到新控制台。之后,Console.WriteLine应能

在WinForm项目中是否有写入控制台的方法

我知道我可以将项目类型更改为console,但仍然是WinForm,但是如果我从CMD启动程序,CMD的执行将停止,直到我的程序退出,如果我从控制台以Winforms启动应用程序,则不会发生这种情况,但我无法写入控制台

因此,问题是:

如何在WinForms上写入控制台,或者如何在从CMD启动我的应用程序时不停止CMD的执行(以避免在我的应用程序的CMD上使用“启动/B”)。

您可以使用将进程附加到新控制台。之后,
Console.WriteLine
应能正常工作。该函数的P/Invoke签名为

[DllImport("kernel32")]
static extern bool AllocConsole();
但是请注意,如果您从
cmd
启动程序,您的程序将获得另一个控制台窗口,并且不可能重复使用父控制台。但我是如何理解你的,这就是你的目标。

你可以用它将一个进程附加到一个新的控制台上。之后,
Console.WriteLine
应能正常工作。该函数的P/Invoke签名为

[DllImport("kernel32")]
static extern bool AllocConsole();

但是请注意,如果您从
cmd
启动程序,您的程序将获得另一个控制台窗口,并且不可能重复使用父控制台。但我是如何理解你的,这是你的目标。

谢谢你提供的信息,但我希望在同一个CMD实例上执行此操作,你知道这是否可行吗?无论如何,我已经测试了函数,新的CMD实例等待我的程序退出:(@ElektroHacker-就在alloconsole旁边…但我想你在找其他东西。谢谢你提供的信息,但我希望在同一个CMD实例上执行此操作,你知道这是否可行吗?),无论如何,我已经测试了函数,新的CMD实例等待我的程序退出:(@ElektroHacker-就在alloconsole的旁边……但我想你在找别的东西。