C# 用于模拟命令行的控制台应用程序

C# 用于模拟命令行的控制台应用程序,c#,command-line,C#,Command Line,我正在开发一个控制台应用程序。我需要模拟按下F7按钮时命令行实用程序的行为方式,如下所示: 2008年有可能吗?如果没有,是否有解决办法 非常感谢您的帮助。我不确定.NET是否包含它们的包装器,或者您是否必须通过p/Invoke使用它们,但Win32 API包含用于此的函数。例如,您可以使用ReadConsoleOutput读取要隐藏的显示块。然后使用WriteConsoleOutput显示列表(包括边框)。完成覆盖后,您可以通过另一次调用WriteConsoleOutput,指定保存基础数据

我正在开发一个控制台应用程序。我需要模拟按下F7按钮时命令行实用程序的行为方式,如下所示:

2008年有可能吗?如果没有,是否有解决办法


非常感谢您的帮助。

我不确定.NET是否包含它们的包装器,或者您是否必须通过p/Invoke使用它们,但Win32 API包含用于此的函数。例如,您可以使用
ReadConsoleOutput
读取要隐藏的显示块。然后使用
WriteConsoleOutput
显示列表(包括边框)。完成覆盖后,您可以通过另一次调用
WriteConsoleOutput
,指定保存基础数据的块来恢复以前的内容


编辑:做一个快速检查,正确的功能不会跳出来对我无论如何。也许我遗漏了一些明显的东西…

在Windows上,有一整套用于编写“控制台模式”应用程序的API。它允许您以事件驱动的方式收听鼠标或键盘输入,还可以设置文本的前景和背景颜色、定位光标等

要制作一个类似CMD.EXE显示的框,可以使用某些特殊字符来制作边框(有各种角块和边块-使用字符映射应用程序查看它们)

要使用C#中的控制台API,您可能需要使用pinvoke,例如

[DllImport("kernel32.dll")] 
public static extern bool SetConsoleTextAttribute(
                            IntPtr hConsoleOutput, int wAttributes);

查看文档了解如何使用它设置颜色。

我很嫉妒。我的F7没有这样做…这种类型的UI传统上是通过直接寻址与图形卡文本模式对应的视频RAM来创建的。过去有大量的库用于构建菜单、绘制窗口等。它们主要应该在现代窗口下工作,但时间太长了,我无法推荐任何具体的功能。如果热键(如F7)激活菜单,您可能正在查看TSR(终止并保持驻留)程序。。。它在DOS下启动,挂接键盘,然后退出,但在内存中等待特定的按键。@Eric J.-令人惊讶的是,Windows NT一直在控制台中支持TSR:-但今天使用该API将是疯狂的-您将编写一个16位应用程序,仅能访问现代PC内存的0.025%。事实上,我想知道是否有人在WindowsNT或更高版本上运行过TSR。很少有公司需要在其上运行16位Windows应用程序。@Daniel:我真的很喜欢当年写TSR。当然,正如你所指出的,情况已经发生了变化。现在我的手机比我的第一台电脑有更多的内存,永久存储空间是第一台电脑的300倍。