問題タブ [readkey]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# コンソール アプリケーション キープレス キャプチャ
以外の方法で、コンソール アプリケーションで押されたキーを確認することは可能Console.ReadKey()
ですか?
コンソール ウィンドウが表示されないように、プロジェクト設定を Windows アプリケーションに変更しました。ただし、コンソール ウィンドウが表示されない場合、コンソール ウィンドウが必要なため、アプリケーションはクラッシュしConsole.ReadKey()
ます。回避策はありますか?
注:ウィンドウを開きたくありません。スレッドを介してキーの押下を追跡するだけです。
java - Java の Readkey() : どうすればいいですか?
私は Pascal を使用していましたが、(Java に) Pascal の readkey() コマンドに似たものがあるかどうかを理解しようとしています。私はそれを検索しましたが、良いものは何も見つかりませんでした.次のように答えてください:
このコマンドは、ユーザーが ENTER を押すのを待ってから続行するため、これは私が探しているものではありません。ユーザーが入力する最初のキー(数値、文字、またはESCやTABのようなもの、または矢印の1つなど)を待機し、すぐにプログラムを続行するコマンドを検索していますユーザーからの他のキーを待っています。
たとえば、このコード:
起動してEnterキーのみを押すと、印刷する必要があります
それが ENTER の ASCII コードです。この Java コードは、次の他のパスカル コードのようになります。
ENTER と入力するだけで 13 が表示されて閉じます。私の問題を解決する方法を知っている人はいますか?
perl - Perl Term::ReadKey - 入力されているかのようにファイルから読み取る
しばらく Perl から離れていて、ずっと前にアート プロジェクトとして書いたスクリプトを変更したいと考えています。元のスクリプトは Term::ReadKey を使用して、ユーザーが任意のテキストを Mac/Linux 端末に入力できるようにします。入力すると、テキストは端末にさまざまなフロート パターンを作成します。スクリプトを調整して、入力時にキーを読み取るのではなく、別のプロセスによって定期的に書き込まれたテキスト ファイルから読み取ることができるようにしたいと考えています。ただし、人間のタイピングを (大まかに) エミュレートするには、制御可能な方法で (一度にすべてではなく) 文字を読み取る必要があります。
私が試したこと: Term::ReadKey の man ページには、STDIN の代わりにファイルハンドルから読み取ることができると書かれていますが、何らかの理由で、標準ファイルまたは FIFO でこれを機能させることができませんでした。また、「open」を使用してファイルからテキストを読み込んで、文字を配列に入れてみました。しかし、スクリプトの残りの部分を一時停止せずに文字間に遅延を追加する必要があるため、配列の反復処理は複雑になりました。(これは潜在的な解決策として想像できますが、スクリプトが扱いにくくなることなく時間の遅延を制御できるようにするための最適な設計方法がわかりません。)
これにアプローチする比較的簡単な方法があるかどうか疑問に思っています-それが実現可能であると仮定しますか?
これが既存のスクリプトの「要点」です (さまざまなキー押下に基づいて追加の効果を追加するさまざまなサブルーチンが削除されています)。
c# - 2 条件の While ループ、そのうちの 1 つがプログラムを終了する
ユーザーが「q」と入力するとプログラムを終了するコードがいくつかあります
キャプチャされたキーが 'p' の場合に別の非終了動作が発生するように、この構造を変更するにはどうすればよいですか?
条件を次のように変更した場合:
次に、「p」もプログラムを終了します。「p」ケースを処理するためにwhileループ内にロジックを入れたとしても。
また:
なんらかの理由で、プログラムを終了するにはユーザーが 'q' を 2 回押す必要がありますが、意図した動作は、キーを 1 回押すだけでアクションがトリガーされることです。
c# - キーボードからの ReadsKey タスクが機能しない - コンシューマー/プロデューサー パターン
BlockingCollection を使用して単一のプロデューサー/コンシューマー パターンを実装しています。
キーボードから「c」をクリックすると、CancellationToken を使用して操作をキャンセルしたい。
奇妙なことに、プログラムの実行後にできるだけ早く「c」を押すと、プログラムはイベントをリッスンします。
後で「c」をクリックすると、45000回目の反復でプログラムが反応しなくなります。
プロデューサーにデータを入力する for ループがあります。
ロガーのコンストラクターで、このメソッドを呼び出します。
エラーが他の方法に関連しているかどうかはわかりませんが、念のため投稿します。
addToQueue (プロデューサー):
そして消費者: