GetAsyncKeyState等で複数同時押しするには?

解決


サトウとシオ  2004-12-08 19:53:47  No: 12191

2〜3つ位なら問題ないですが、複数のキーを押すと反応しない物が出てきます。
例えば下記のソースだと  ZとXとCとVとB  をおしても反応しない物があります。

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //Timer1.Interval := 60;
  //Memo1.ReadOnly:=True;
  Memo1.Clear;

  if GetAsyncKeyState(Ord('Z')) <0 then  Memo1.Lines.Add('Z-ON')
  else  Memo1.Lines.Add('Z-OFF');

  if GetAsyncKeyState(Ord('X')) <0 then  Memo1.Lines.Add('X-ON')
  else  Memo1.Lines.Add('X-OFF');

  if GetAsyncKeyState(Ord('C')) <0 then  Memo1.Lines.Add('C-ON')
  else  Memo1.Lines.Add('C-OFF');

  if GetAsyncKeyState(Ord('V')) <0 then  Memo1.Lines.Add('V-ON')
  else  Memo1.Lines.Add('V-OFF');

  if GetAsyncKeyState(Ord('B')) <0 then  Memo1.Lines.Add('B-ON')
  else  Memo1.Lines.Add('B-OFF');

end;

きちんと反応させるにはどうしたらいいのでしょうか?

環境:Win98se del6Per


スタテツ  2004-12-08 23:22:55  No: 12192

私の環境では4キー以上で反応なくなりました。
多分ハード的に無理なのではないでしょうか?
少なくともWindowsの動くどのような環境にも対応するのは至難かとおもいます。


にしの  2004-12-09 00:15:02  No: 12193

複数キー同時押しに対応するキーボードにすれば取得できると思います。
# 対応したキーボードを持っていないため未確認ですが

確か東プレのキーボードが対応していたような・・・


サトウとシオ  2004-12-09 18:43:53  No: 12194

なるほど。
ご意見ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加