• ベストアンサー

UWSCでキー入力を変数に代入する方法

IFB GETKEYSTATE(VK_CTRL) PRINT "Ctrlキーが入力されたよ" ENDIF という風に決め打ちで何が押されたか確認する方法は分かったのですが、 SELECT KeyInput CASE VK_CTRL PRINT "Ctrlキーが入力されたよ" CASE VK_ESC PRINT "Escキーが入力されたよ" SELEND というように変数にキー入力を代入してから比較する方法が分かりません。 キー入力を変数に代入する方法はあるのでしょうか?

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

  • ベストアンサー
  • kichi8000
  • ベストアンサー率41% (660/1584)
回答No.2

配列変数に入れておくとか --------------------- DIM KEY[] = VK_CTRL, VK_ESC, VK_SHIFT //先に登録 //DIM TEXTS[]="CTRL","ESC","SHIFT" //対応文字 KeyInput = NULL For i = 0 to LENGTH(KEY)- 1 IFB GETKEYSTATE(KEY[i]) THEN KeyInput = KEY[i] //PRINT TEXTS[i]+"キーが入力されたよ" BREAK //スルーするためForループを抜ける ENDIF NEXT //以下付け足し SELECT KeyInput CASE VK_CTRL PRINT "Ctrlキーが入力されたよ" CASE VK_ESC PRINT "Escキーが入力されたよ" SELEND ---------------------

その他の回答 (1)

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

KeyInput=GETKEYSTATE(VK_CTRL) という形で代入できますが、予め何が押されたかを指定する必要のなるGETKEYSTATEなら KeyInput=0 if KeyInput = 0 Then if GETKEYSTATE(VK_CTRL) then KeyInput=VK_CTRL if KeyInput = 0 Then if GETKEYSTATE(VK_ESC) then KeyInput=VK_ESC と言った羅列が必要になるので、Select~Caseで改めて判定する事で遅くなる必要性があるのかでしょうね。

関連するQ&A