• ベストアンサー

JoyToKeyのキーイベント処理

1つのキーを押すと複数のキーを押したことにするソフトを作ろうと思いました。 そこで以下の方法でキーイベントを発生させて試してみました。 ・keybd_eventで処理。 ・PostMessageで処理。 ・SendInputで処理。 しかしメモ帳などではちゃんと機能するのですが、ゲームで機能してくれないものがあります。 JoyToKeyを使うときちんとキーボードが押された事になっているので、何か他の方法があるのだろうかと思い質問させていただきました。 よろしくお願いします。

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

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

DirectX(DirectInput)を使用してキーボード入力を取得しているゲームの場合、イベントを割り込ませる方法ではキーボード入力を改変することができません。 DirectInputのインターフェース自体を改変するか、あるいはドライバレベルでキーボード入力を改変することになるのではないかと思います。(この点については自信なし。) JoyToKeyのWebサイトを見たところ、JoyToKey自体はDirectInputに部分的に対応しているとありました。

pchan0022000
質問者

お礼

回答ありがとうございます。 私も一度DirectInputで取得しているから無理なんだろうと諦めたのですが、JoyToKeyでキーイベントを送れたので質問させていただきました。

その他の回答 (1)

  • kyrsche
  • ベストアンサー率41% (7/17)
回答No.2

そのものの回答ではありませんが。 いくつか考えてみました。 ・DirectInputの協調モードで入力を受け取り、アクティブウィンドウに送りつける ・システムフックを使ってキー入力を横取りし、アクティブウィンドウに送りつける 確か、マウスのフックを有効にするには、DLLを作る必要があるとかで、 挫折した経験があります。(キーボードも同じ様な気がします) WindowsAPIを眺めていると、別にDLLを作らないでも良いような気はしていたのですが・・・ DirectInputは、ゲームなどでは占有モードで使用するソフトもありますので、 起動タイミングによってはインタフェイスの取得(だったかな?)に失敗したり、 ソフト側で無効になったりするかもしれません。 もっとも、DirectX5~7辺りの話なので、今は違うのかもしれませんが・・・。 簡単ですが参考になれば(・・・なるのかな(^^;)

関連するQ&A