問題タブ [keyboard-input]

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.

0 投票する
1 に答える
783 参照

assembly - int 16h/ah=1 は、ユーザーが別のキーを押した後でも、同じキーを繰り返し押します

恐竜の動きがユーザーから押されたキーに依存するアセンブリ言語でゲームのコードを書いています。ユーザーがスペースバーを押すとプログラムが終了し、「a」を押すと恐竜が正しい方向に移動するようにコードを実装しました。しかし、最初にキーを押した後、プログラムがその後に押された他のキーを検索しないという問題に直面しています。これは、最初に押されたキーを何度も取得していることを示しています。修正方法は?

alレジスタで押されたキーのASCIIを返すmov ah、01h、int 16hの機能を使用しています。この後、これを必要なASCIIキーと比較しますが、この16hは、キーが初めて押されたときにのみうまく機能します。

スペースバーを押すたびにプログラムが終了することを期待していましたが、最初に押されたキーのみが選択され、その後は最初のキーに従って動作し続け、その後押されたキーは検索されません

0 投票する
3 に答える
719 参照

c++ - Windows98 でウィンドウ モードで実行されている DOS アプリケーションにキーボード入力を送信する方法

私の質問は非常に古い技術についてです。Windows 98 の Windows モードで実行されている古い DOS ソフトウェア (スペクトロメトリック) を自動化するタスクがあります。2 つの異なるソリューションを作成しましたが、どちらもDOS アプリケーションでは動作しません。

  1. 最初の解決策

    • DOS アプリケーションをアクティブにする
    • 次のように、SendInput 関数を介して入力を送信します。
  1. i8042 キーボード コントローラー経由でキー プレスを生成します。次のように、D2 コマンドを使用してキーボード バッファー コマンドに書き込みます (KEYBOARD_CMD_REG - 0x64、KEYBOARD_DATA_REG - 0x60):

これらのソリューションの両方を標準のメモ帳ウィンドウ (notepad.exe) でテストしたところ、どちらも正常に動作しましたが、DOS アプリケーションでは動作しません。

キーボード入力 (およびプロジェクト全体) を生成するコード: https://github.com/MossbauerLab/Sm2201Autosave/blob/master/MossbauerLab.Sm2201.ExtSaveUtility/src/saveManager/autoSaveManager.cpp

この解決策を解決するのを手伝ってください。