2
A
回答
0
在Windows上有一个用于编写“控制台模式”应用程序的完整API。它允许您以事件驱动的方式监听鼠标或键盘输入,还可以设置文本的前景和背景颜色,定位光标等。
要制作一个类似CMD.EXE所显示的盒子,你使用某些特殊字符来制作边框(有各种角落和边缘碎片 - 使用Character Map应用程序来查看它们)。
要使用C#中的Console API,您可能需要使用pinvoke,例如,
[DllImport("kernel32.dll")]
public static extern bool SetConsoleTextAttribute(
IntPtr hConsoleOutput, int wAttributes);
请参阅文档SetConsoleTextAttribute以了解如何使用它来设置颜色。
1
我不确定.NET是否包含它们的包装器,或者是否必须通过P/Invoke来使用它们,但是Win32 API包含这些功能。例如,您可以使用ReadConsoleOutput
来读取您要遮掩的显示屏的区块。然后你会使用WriteConsoleOutput
来显示你的列表(包括边框)。覆盖图完成后,您可以通过WriteConsoleOutput
的另一个调用恢复以前的内容,指定保存底层数据的块。
编辑:做一个快速检查,正确的功能不会跳出来反正我。也许我错过了一些显而易见的东西......
+0
+1。非常感谢 - 您的方法也适用于我。 – 2010-04-16 03:55:56
相关问题
- 1. 从命令行执行控制台应用程序?
- 2. 获取BlackBerry模拟器打印到命令行/控制台
- 3. 如何使用autowire命令设置控制台应用程序?
- 4. 如何从GUI应用程序向控制台应用程序发送命令
- 5. Laravel:类应用程序\控制台\命令\ BlockModelsDidNotShowUp不存在
- 6. 关闭控制台应用程序的命令?
- 7. 无法向控制台应用程序发送多个命令
- 8. 在控制台应用程序中编写cmd命令
- 9. 从其他控制台应用程序运行控制台应用程序
- 10. 可能在app.config中模拟控制台应用程序?
- 11. 将返回键发送到模拟控制台应用程序
- 12. 在Linux C控制台应用程序中模拟按键
- 13. 如何模拟键盘输入到控制台应用程序?
- 14. 从控制器的Symfony3控制台运行控制台命令
- 15. 在命令行模拟Visual Studio的Web应用程序“发布”
- 16. iOS模拟器应用程序的终端命令行调试?
- 17. 运行C#控制台应用程序
- 18. 如何从C#控制台运行多个CMD命令应用程序
- 19. .NET控制台应用程序命令行解析文件参数
- 20. 如何在命令行中提供.net控制台应用程序?
- 21. 在开发人员命令提示符下运行控制台应用程序
- 22. 如何通过REST API在Heroku应用程序上运行控制台命令?
- 23. 试图阅读控制台应用程序的某些命令行参数
- 24. 将命令行参数传递给控制台应用程序中的VB6 IDE
- 25. 控制台命令不执行,而调试时的tizen应用程序
- 26. xCode 6 - 从模拟器中运行的应用程序查看控制台
- 27. 从Java控制台程序的命令行中读取段落
- 28. 具有SharePoint参数的VB.Net命令行(控制台)程序
- 29. 从命令行参数控制程序
- 30. 从Windows XAML应用程序运行控制台应用程序
我很嫉妒。 *我的* F7不这样做...... – 2010-04-15 05:37:24
这种类型的UI传统上是通过直接寻址与显卡的文本模式相对应的视频RAM来创建的。过去有大量的图书馆来建立菜单,绘制窗口等等。主要是他们应该在现代Windows下工作,但是我很长时间没有推荐任何特定的东西。如果一个热键(例如F7)激活菜单,您可能正在查看一个TSR(终止并保持驻留)程序......一个在DOS下启动,钩住键盘并退出但仍留在内存中等待特定按键。 – 2010-04-15 05:40:48
@Eric J. - 令人惊讶的是Windows NT一直支持控制台中的TSR:http://support.microsoft.com/kb/101921 - 但是今天使用这个API会很疯狂 - 你会写一个16-仅限于访问大约0.025%的现代PC内存。事实上,我不知道是否有人曾经在Windows NT或更高版本上运行过TSR。没有多少公司需要运行16位Windows应用程序。 – 2010-04-15 05:57:39