• ベストアンサー

複数のキー入力の方法

同時に押された複数のキーの キーコードを取得できないでしょうか? 分かる方がいたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1補足> Date()で、現在の時間をミリ秒まで求めることができます。 なので、1回目のキーが押された時間から、2回目のキーが押された時の時間までにどれくらいが経過しているかを調べればいいんじゃないかと思います。 同じ目的のものではありませんが、時間の取得について参考URLが参考になるかも

参考URL:
http://okweb.jp/kotaeru.php3?qid=1371695
m035
質問者

お礼

すいません、さすがに無理だと分かったので >1回目のキーが押された時間から、2回目のキーが押された時の時間までに >どれくらいが経過しているかを・・・ この方法でやってみます。長々と時間をとってしまいました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

今どきのキーボードは違うのかもしれませんが、 キーボードの構造上複数のキーが同時に押されたときに、違うキーを押したと誤動作する可能性があります。 単発のキーの場合 IEの場合、 onkeypress,onkeydown,onkeyupなどのイベントの中で window.event.keyCode でキーコードを得ることができます。(単発) また window.event.altKey window.event.shiftKey でALTキー、SHIFTキーが(同時に)押されているかどうかを論理値で得ることができます。 NNの場合 イベントハンドラの引数を指定して 例えば function(e){…} の様にイベントを受け取って e.whichでキーコード(ASCII)を得ることができます。

m035
質問者

補足

すいません。 同時にキーコード取得は出来ないと思ったので質問しました。 なので、たとえばZキーとXキーを同時押し しているかどうかをZキーまたはXキーを押してから 指定した時間の間にもう一方のキーが入力されたかどうかで 調べる方法でもいいので教えてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Ctrlキーの押しっぱなし

    初心者のmikaninuです。 マルチセレクトにしてマウスクリックで複数選択したいのですが、 Ctrlキーの押しっぱなしをプログラムでできないのでしょうか? マウスキーだけで操作できるようにしたいのです。 キーコードは取得できるのですが、その使い方がわかりません。 誰か教えていただけないでしょうか。 お願いします。 本当に本当にお願いします!!!!

  • どのキーが押されたか調べる

    processingというソフトを見つけて色々使ってみているのですが、これはキーの複数の同時に押した場合の判定が出来ないような使用になっています。Javaで出来ているのでライブラリを作ればいいのかなと思いましたがメインプログラム以外でキーを取得する方法が分かりません。 ご教授お願いします。

    • ベストアンサー
    • Java
  • AS2でキーによる複数の音楽制御について

    頻繁な質問で申し訳ありません。 AS2、CS5.5での環境で、キーによる複数の音楽の再生・停止の制御プログラムを作ろうとしています。 同時に複数の音楽が流れることが可能で、複数の音楽が流れている中で1つだけ止める等の音楽それぞれを個別に制御もできるものが希望です。 先日に //------------------------------------------- //この階層を変数化 var me:MovieClip = this; //変数 i を 0~7 の間で 1 ずつ加算しながらループ for (var i:Number = 0; i<=7; i++) { //Soundオブジェクト「sound_obj0」~「sound_obj7」を作成 me["sound_obj" + i] = new Sound(); //各Soundオブジェクトに各音を割り当てる me["sound_obj"+i].attachSound("sound"+i); //各音の再生フラグ「sound_flg0」~「sound_flg7」を用意 me["sound_flg"+i] = false; } //キーを監視させるオブジェクトを作成 var key_obj:Object = new Object(); //キーを押したときに実行する関数の定義 key_obj.onKeyDown = function():Void { // //押されたキーコードを保存 var key_num:Number = Key.getCode(); // //押されたキーコードが65~72(キーがA~H)の間であれば if (key_num>=65 && key_num<=72) { //さらにそのキーの音に対応するフラグが false であれば if (!me["sound_flg"+(key_num-65)]) { trace("sound_obj"+(key_num-65)); //そのキーに対応する音を再生 me["sound_obj"+(key_num-65)].start(0, 100); //その音に対応するフラグを true にする me["sound_flg"+(key_num-65)] = true; } //押されたキーコードが96~103(キーが1~7)の間であれば } else if (key_num>=96 && key_num<=103) { trace("sound_obj"+(key_num-96)); //そのキーに対応する音を停止 me["sound_obj"+(key_num-96)].stop("sound"+(key_num-96)); //その音に対応するフラグを false にする me["sound_flg"+(key_num-96)] = false; } }; //key_obj を Key のリスナーとして登録 Key.addListener(key_obj); //------------------------------------------- このようなスクリプトを教えていただきました。 これをさらに、Aキーを押せばsoundA(リンゲージ名を付けた音楽ファイル)が流れる、Bキーを押せばsoundBが流れ、1キーもしくは2キーのどちらか押されたらsoundAもsoundBも停止 というようにしたいのですが、可能でしょうか。 またこれを上記と同じ要領で、soundC、DはC、Dキーで再生し3、4キーで停止...EF、GHの8種類制御したいです。 説明が下手ですみませんが、どなたか教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • キー入力を遅くする方法

    KeyRemap4MacBookという親指かな入力ソフトを使っています。 シフトキーと「た」のキーの同時入力が早くて出来ません。 キー入力の反応が遅ければ良いのですが。

    • 締切済み
    • Mac
  • Key.getAscii() について

    どうもこんばんわ。 ActionScript 勉強中の者です。 キーボードのあるキーが押されたら、Key.getAscii() でアスキーコードを取得し、それを String.fromCharCode(取得したアスキーコード) で文字に変換して、ダイナミックテキストに表示させる、といったようなことをやってみたいと思っているのですが、どうも Key.getAscii() で取得する値が変というかおかしいというか、正しく表示されないようです。 英語大文字・小文字については何ら問題はないのですが、ある特定の記号となるとダメみだいです。(_ とか * とか) 記号であっても、正しくキーコードを取得することはできないのでしょうか? ものすごく初歩的で漠然とした質問で申し訳ないのですが、宜しくお願いいたします。 環境 OS:WindowsXP Flash:MX 2004

  • キーボードのtabキーとenterキーの変換

    ホームページのあるページにテキストフォームがあります。 キーボードのtabキーを押した時に、enterキーを押した時の処理を施したいと思っています。 通常tabキーを押せば次のフォームにカーソルが移動するかと思いますが、 このページではそれがenterキーとして動いてほしいと思っています。 このテキストフォームの横にはsubmitも置いており、即時にsubmit送信したいのです。 テキストフォームは一つだけです。 なぜそういうことをしたいかというと、スキャンでバーコードを読取りテキストフォームに数値を表示させます。 このスキャナーは設定でスキャンした後にtabキーをセットすることが可能で、 キーコードを確認してもスキャン後にtabキーを入力しているようでした。 しかし、tabキーではスキャン後にsubmit送信されませんので、tabキーをenterキーに変換してしまえばスキャン読み取り後即時にそのフォームが送信されるのではないかと思っています。 このスキャナーでは読み取り後にenterキーを打つという設定はあるのですが、 複数のフォームがある場合にスキャンした値を入力していくことができません。 (※別ページには複数のフォームが存在する) どうすればキーコードを変換してtabキーをenterキーに変換できるのでしょうか? ブラウザはGoogle chromeです。 OSはWINです。 その他不明点がありましたら、ご質問下さい。 よろしくお願いします。

  • Mac英数キーのキーコードは?

    MacBookProを使用しています 英数キーのキーコードが解りません、教えてください よろしくお願いします

    • 締切済み
    • Mac
  • HHKBにテンキーのキーは割り当てられますか?

    アプリケーションによってはキーボード上部の数字キーとテンキーの数字キーを別々のキー入力として扱うものがあります。 (例えばWebブラウザでは別々のキーコードがイベントで取得されます) キーマップ変更ツールではテンキーの/*+-の割り当てはできるようですが、 数字キーや.キーの割り当ては、変更ツール下部の「QWERTY配列」「アルファベット順」を切り替えても見当たりません。 HHKBにテンキーのキーコードを割り当てる方法は何か無いでしょうか。 Fnレイヤーに配置して使用したいです。 使用環境 Happy Hacking Keyboard HYBRID Type-S 墨 PD-KB820BS Happy Hacking Keyboard キーマップ変更ツール バージョン1.3.0.1 Windows 10 Home 21H2 ※OKWAVEより補足:「「ScanSnap/fiシリーズ/HHKB」商品について」についての質問です。

  • コンボボックスにキー入力をさせない方法(ACCESS VBA)

    ACCESS VBAでコンボボックスを使ったプログラムを作成しています。 コンボボックスにキー入力(特にdelete、BackSpaceキー)をさせたくありません。 VBではSTYLEプロパティをドロップダウンリストにすれば 可能ですが、VBAで同じようにするプロパティが見つかりません。どなたかご存知でしたら教えてください。 それとも、そもそもそのようなプロパティは用意されていないのでしょうか? そのような場合も考えて、コンボボックスのKeydownイベントでキーコードを拾ってdelete、backspaceキーを無効にしようとも思いましたが、どうしたら無効になるのかわからず、できませんでした。 どなたかよい方法をご存知でしたら教えてください。

  • 登録したレコードの主キーの取得方法

    主キーに自動インクリメント( nextval )を使用しているテーブルで、 そこにレコードを登録したときにそのとき使われた主キー を取得する方法はありますでしょうか。 例えば 主キー|データ 1|AAA 2|BBB 3|CCC にDDDと登録したら恐らくは4になるのですが、 主キー|データ 1|AAA 2|BBB 3|CCC 4|DDD ←追加された データを登録したときにその主キーに何が使われたかが知りたいです が知りたいです。 自分で考えてる方法は今の主キーで使ってるシーケンス+1が割り当てられる(だろう)というやり方なのですが、複数のレコード登録が同時にあった場合に不整合が起きるのでどうしたものかと困ってます。 なにか良い方法をご存知の方いらっしゃいましたらお教えください。

キロクシカクニンが消えない
このQ&Aのポイント
  • 記録紙を補充しても送らないので、データに残っている着信したfaxを読めない。また、この着信データをあきらめるにせよ、キロクシカクニンの表示を消す方法がわからない
  • ひかり回線を使用している環境において、FAX1000CLが記録紙を補充しても送信しない不具合が発生しています。このため、着信データを閲覧することができず、さらにキロクシカクニンの表示を消す方法もわからない状況です。
  • ブラザー製品のFAX1000CLを使用している際、ひかり回線を利用している場合において、着信したファクスデータを読むことができず、キロクシカクニンの表示を消す方法もわからない問題が発生しています。
回答を見る