我在Mono有一個應用程序,它創建一個膩子窗口,連接到它的PTY並通過它與世界進行通信。如何在C#中模擬ANSI終端?
由於膩子我有一個完整的終端,我可以發送特殊的代碼(如Ctrl + C,Ctrl + Z鍵),以我的應用程序。
我想回到我的終端,在其中我開始申請。我想抓住儘可能多的組合鍵。這樣我就可以通過ssh使用我的應用程序,沒有窗口彈出。
我的想法是檢索的/ dev /我目前的終端,忽略(或處理)所有可能的信號,在按鍵投票和轉發給我的應用程序。這可以使用P/Invoke在C中完成。
這是可能的,但代碼很痛苦且耗時。
我不知道它是否已經完成?你知道任何圖書館嗎?最好的選擇是註冊一個或兩個回調,但任何解決方案使它更容易會很好。
TL; DR
我需要,這將使我的界面就像一個圖書館:
event Action<byte> CharReceived;
void WriteChar(byte val);
,讓我得到ANSI終端代碼爲字節序列。
根據ANSI終端規則,替代方法是將ConsoleKeyInfo
轉換爲byte[]
的庫。