1

パテ ウィンドウを作成し、その PTY に接続し、それを介して世界と通信する Mono のアプリケーションがあります。

Putty のおかげで、完全な端末を使用できるようになりました。特別なコード (Ctrl+C、Ctrl+Z など) をアプリに送信できます。

アプリケーションを起動する端末に戻りたいと思います。できるだけ多くのキーの組み合わせを取得したいと思います。そうすれば、ウィンドウがポップアップすることなく、ssh経由でアプリを使用できるようになります。

私の考えは、現在の端末を /dev/ から取得し、考えられるすべてのシグナルを無視 (または処理) し、押されたキーをポーリングしてアプリに転送することです。これは、P/Invoke を使用して C で実行できます。

これは可能ですが、コーディングには手間と時間がかかります。

私はそれがすでに行われているのだろうか?ライブラリについて知っていますか?最善の選択肢は、コールバックを 1 つまたは 2 つ登録することですが、それを簡単にするソリューションがあれば素晴らしいでしょう。

TL;DR

次のようなインターフェイスを提供するライブラリが必要です。

event Action<byte> CharReceived;
void WriteChar(byte val);

ANSI端末コードを一連のバイトとして受け取ることができました。

代替手段は、ANSI 端末規則に従って、に変換ConsoleKeyInfoするライブラリです。byte[]

4

2 に答える 2

1

次のプロジェクト リンクが非常に役立つことがわかりました。プロジェクトをダウンロードし、codeproject サイトの最初のコメントを見て、SerialPort サポートに拡張する方法を確認してください (これは私が必要としていたものです)。

http://www.codeproject.com/Articles/20781/Terminal-Control-Library-C-VT100-ANSI-XTERM-SSH-Te

このプロジェクトは実際には Poderosa プロジェクトの薄いラッパーですが、日本語を話さない限り、この薄いラッパーは役に立ちます。Poderosa プロジェクトはすでに SerialPorts をサポートしていますが、「Columbus-MCSD」によって表面化されたわけではありません。

于 2013-01-25T22:45:50.863 に答える