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