【发布时间】:2013-01-11 16:40:13
【问题描述】:
我在 Mono 中有一个应用程序,它创建一个 putty 窗口,连接到它的 PTY 并通过它与世界通信。
感谢 Putty,我有一个完整的终端,我可以将特殊代码(如 Ctrl+C、Ctrl+Z)发送到我的应用程序。
我想回到我的终端,在其中启动应用程序。我想抓住尽可能多的组合键。这样我就可以通过 ssh 使用我的应用程序,而不会弹出任何窗口。
我的想法是从 /dev/ 检索我当前的终端,忽略(或处理)所有可能的信号,轮询按下的键并转发到我的应用程序。这可以在 C 中使用 P/Invoke 完成。
这是可能的,但编写代码很痛苦且耗时。
我想知道它是否已经完成了?你知道任何图书馆吗?最好的选择是注册一两个回调,但任何使它更容易的解决方案都会很棒。
TL;DR
我需要一个库来提供我的界面,例如:
event Action<byte> CharReceived;
void WriteChar(byte val);
并允许我以字节序列的形式接收 ANSI 终端代码。
替代方案是根据 ANSI 终端规则将 ConsoleKeyInfo 转换为 byte[] 的库。
【问题讨论】: