
私のジョイスティック/ゲームパッドには、標準の 10 個のボタンに加えて、X 軸と Y 軸のボタンがあります。以下のスクリプトは動作しますが、私の希望どおりではありません。
Right::
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage
このスクリプトは、JoyX が 75 より大きいときにキーボードの右矢印キーを押すと、「testmessage」を出力します。私が望んでいるのは、JoyX が 75 より大きいときに、キーボードの右矢印キーを押さなくても SendInput 「testmessage」が実行されることです。
JoyX または X100 Y050 をホットキーとして使用しようとしましたが、エラー メッセージが表示されます: 現在のホットキー JoyX はキーボード レイアウトにないためアクティブになりません。
ありがとう!
答え1
ジョイスティックには応答する「ボタン」イベントがないため、ポーリングする必要がある状態があります。以下はジョイスティックをキーボードまたはマウスに再マッピングするインスピレーションのために、特にジョイスティック軸または POV ハットにキーストロークまたはマウスクリックを送信するセクション。タイマーを使用してジョイスティックの状態を定期的にポーリングし、状態が 75 を超えると入力を送信します。
#Persistent ; Keep this script running until the user explicitly exits it.
SetTimer, WatchAxis, 5
return
WatchAxis:
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage
return
これをうまく動作させるには、タイマーのポーリング頻度 (現在は 5) を調整し、KeyToHoldDown
状態追跡のスタイルを実装する必要があるかもしれません。そうしないと、テキストが繰り返し送信される可能性があります。