ANSIエスケープコードを使用してターミナルカーソルの文字を取得できますか?

ANSIエスケープコードを使用してターミナルカーソルの文字を取得できますか?

エスケープコードを使用してカーソルを移動してカーソルに印刷することもできます。カーソルの下に文字をドラッグすることが可能かどうか疑問に思います。

そのコードを探しましたが失敗しました。だからこれは可能なようではありませんが、もし私が見つけることができなかった方法があるかどうかを見たいと思いました。

答え1

cursesライブラリまたはそれに対応するものを使用するように端末エミュレータを変更しない限り、これは不可能です。

答え2

エスケープシーケンスを使用DECRQCRAすると、長方形領域のチェックサムを照会できます。

チェックサムは基本的にそこにある文字コードの合計です。 1×1長方形の領域を選択すると... bamm、それが文字コードです。

たとえば、テストスイートではこの機能を使用しますesctest

現時点では、すべての端末がそれをサポートしているわけではありません。一部の人々は怠惰なので、この機能を実装していません(誰も実際にこの機能を必要としません)。一部の人はプライバシー/セキュリティ上の理由で意図的にこれを実装していません(//ssh破損したリモートシステムに接続すると、画面を見て以前の状態を見ることができます)。一部は実行できるように開発者フラグの種類を適用しますが、基本的にプライバシー/セキュリティの脆弱性を開くことはありません。telnetnetcatesctest

関連情報