控制台应用程序以模拟命令行

时间:2010-04-15 05:27:16

标签: c# command-line

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

alt text

C#2008有可能吗?如果没有,是否有可用的解决方法?

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:1)

我不确定.NET是否包含它们的包装器,或者你是否必须通过P / Invoke使用它们,但是Win32 API包含了这方面的功能。例如,您可以使用ReadConsoleOutput来读取您要掩盖的显示块。然后,您将使用WriteConsoleOutput来显示您的列表(包括边框)。完成叠加后,您将通过另一次调用WriteConsoleOutput来恢复之前的内容,并指定保存基础数据的块。

编辑:快速检查,无论如何,正确的功能并没有跳出来。也许我错过了一些明显的东西......

答案 1 :(得分:0)

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

要创建一个类似CMD.EXE显示的框,您可以使用某些特殊字符来创建边框(有各种角落和边缘部分 - 使用“字符映射”应用程序查看它们)。

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

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

请参阅SetConsoleTextAttribute的文档,了解如何使用它来设置颜色。