我正在开发一个控制台应用程序。我需要模仿按下F7按钮时命令行实用程序的行为方式,如下所示:
C#2008有可能吗?如果没有,是否有可用的解决方法?
任何帮助都非常感激。
答案 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的文档,了解如何使用它来设置颜色。