【发布时间】:2016-01-30 02:11:13
【问题描述】:
我想在 C# WinForms 应用程序中构建一个终端,用于通过串行端口、网络终端或任何其他类型的命令/响应机制进行通信。
我认为最简单的方法是打开 Windows 控制台并将 stdin、stdout 和 stderr 流重定向到我程序中的 TextStreams,但我找不到明显的方法来执行此操作。我不想使用 System.Console 并将其与其他错误/调试消息混在一起。
如果我可以将控制台作为控件嵌入到 WinForm 上,那就更好了。
在没有任何第三方库或大量编码的情况下,这些解决方案是否可行?
谢谢!
【问题讨论】:
-
不想使用
System.Console是什么意思?System.Console是 在 C# 中与控制台交互的方式... -
System.Console 与我的应用程序有着内在的联系——你只能拥有一个,而且看起来一旦打开就无法关闭它。我想要一些独立的东西,而且我可以创造不止一个。
-
啊,感谢您澄清这一点。在这种情况下,有几种方法可以解决这个问题 - 可能最好的方法是您建议的 WinForm 窗口。您实际上可以创建控制台的多个实例(请参阅this 问题),但我不建议这样做,因为当控制台窗口打开其他控制台窗口时,用户可能会感到有些困惑。我想如果你有 WinForms 解决方案,它会更清晰
-
已经有这样的开源项目了,如果不想自己写代码,何不直接去看看呢?
标签: c# winforms console command-line-interface pty