我正在尝试编写一个控制台应用程序.它有它的原始控制台,我们将它命名为控制台A.我希望这个应用程序通过C#执行以下操作:
- 在另一个线程中打开另一个控制台B,然后从A获取输入并将其输出到B;
- 在A中输入命令,例如dir,并在B中显示输出;
在做上述事情时(还没有完成.X_X),我发现自己缺乏对控制台窗口是什么以及如何将其分配给控制台应用程序的理解,特别是当我的控制台应用程序开始运行时的第一个控制台.有人会对我有所了解吗?
是控制台窗口物理视频存储器中的存储区域?或者是其他东西?同一进程中的不同线程是否可以为自己的I/O设置不同的控制台?
非常感谢...
大家好,现在我正在使用一个控制台应用程序在新进程中启动另一个控制台应用程序.因此,我可以同时输出2个控制台.
我现在的理解是,对于Windows操作系统,控制台是一个特殊的窗口,它是一个系统资源,操作系统分配给应用程序而没有用户界面作为必要的用户界面.Windows操作系统使用我们的无UI应用程序处理系统准备的控制台窗口之间的连线.
在Windows术语中,控制台是您在运行"cmd.exe"时看到的文本GUI窗口.它允许您在窗口中写入文本和从窗口读取文本,而窗口没有任何其他UI镶边,例如工具栏,菜单,选项卡等.
要开始使用,您需要加载Visual Studio,创建一个新项目并选择"控制台应用程序".将Visual Studio生成的样板代码更改为:
using System;
using System.Text;
namespace MyConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.Write("Hello, world!");
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行应用程序时,将打开一个控制台窗口,其中包含"Hello,world!"文本.它会一直打开,直到你按下一个键.这是一个控制台应用程序.
控制台窗口在物理上是视频内存中的内存区域吗?或者是其他东西?
它实际上不是视频内存中的内存区域,它是"其他东西".维基百科Win32控制台页面提供了相当强大的输入和输出描述.