• ベストアンサー

ゲームパッドのボタンの押下をコードで実現

キーボードの押下をコードで実現する方法として、sendkeys関数がありますが、ゲームパッドのボタンの押下をコードで実現するにはどのようにしたらいいのでしょうか? というのも、ゲームパッドにしか対応していないゲームをキーボード対応にしたいのですが、そのようなことはできるのでしょうか? キーボードにしか対応していないゲームをゲームパッド対応にするためのソフトならフリーソフトでたくさん出ているのですが、その逆のことをするためのソフトが見つからず困っています。 よろしくお願い致します。

noname#208339
noname#208339

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

  • ベストアンサー
回答No.1

Wizard_Zeroと申します。 不可能なことではないとは思いますが、実現するのはかなり難しいと思います。 まず、他のウィンドウで押されたキーを拾うには、グローバルフックを仕掛けなければならないので、この時点でVBだけでは出来ません。また、ゲームパッドの入力は、DirectInputを使うことが多いと思うのですが、これをシミュレートするのも難しいでしょう。(おそらく、デバイスドライバを直接操作することになるかと...) 逆に、DirectInputはディアクティブウィンドウ(=フォーカスを失っている状態)でも入力を受け付けることが出来、さらにsendkeys関数で簡単にシミュレートすることが出来ます。(こっちはVBでも簡単に作れる) どんなに探してもソフトがない、ということは「不可能」かそれに近いことだと、私は割り切ってます。

noname#208339
質問者

お礼

どうも有り難う御座いました。かなり難しそうなので今回はあきらめようかと思います。ありがとうございました。

その他の回答 (2)

回答No.3

グローバルフック関数 SetWindowsHookEx VBでのサンプルの履歴があったので張っておきます。 http://okweb.jp/kotaeru.php3?q=199683 このサンプルは、自分のアプリのスレッドIDを渡して、自アプリのキーボードイベントだけに反応しているので、グローバルフックじゃなくてもよさそうに見えますが、コマンドボタンのイベントより先に取得するために、グローバルフックを利用しているものだと思います。 スレッドIDにNullを(アドレス=0)を渡してあげたら、おそらくWindowsの全てのキーボードイベントを拾うと思います。 VB6で作成した自分のアプリは自宅のどこかに行方不明で、使用方法もすっかり忘れております。 さらに職場には参考のURLを実験する環境も無いので、すみませんが推測です。

noname#208339
質問者

お礼

どうも有り難う御座いました。かなり難しそうなので今回はあきらめようかと思います。ありがとうございました。

回答No.2

まず、#1さんの書き込みを見て率直な感想 「な~るほど、DirectInputか~」 (1)キーボード対応をゲームパッドで実現   DirectInputをキーイベント化 (2)ゲームパッド対応をキーボードで実現   キーイベントをDirectInput化 非常に納得です。 (1)ができるなら(2)も出来そうですね >まず、他のウィンドウで押されたキーを拾うには、グローバルフックを仕掛けなければならないので、この時点でVBだけでは出来ません。 できますよー。やったことあります。 オリジナルでランチャをVBで作ったとき、デスクトップイベントを拾うために仕込みました。 でも >どんなに探してもソフトがない、ということは「不可能」かそれに近いこと 全く同感です。 こっからは私の推測です。 ゲームポートを認識しているんじゃないかな? デーモンツールみたいな仮想CD-ROMや、Office2003/Acrobatのような仮想プリンタみたいに、仮想ゲームポートを発生させ認識させ、そこから発生させるような仕組みならできるのかなと感じました。 以前にフリーの仮想プリンタソフト(現在はシェア)を利用していたのですが、その作者のコメントで 「ドライバに関する情報はほとんど公開されておらず、作成にはデバッグの日々でした」 とありました。 あくまで推測ですが、これと同類かな? どこかでゲームポートの情報が公開されていたら、是非実験してみたいですねー もし読み通りだったら、先駆者となって、一儲けできるかもー

noname#208339
質問者

お礼

どうも有り難う御座いました。かなり難しそうなので今回はあきらめようかと思います。ありがとうございました。

関連するQ&A

  • ゲームパッド

    USBゲームパッドを買いました。 しかし、USBゲームコントローラに対応しないと使えないことに気づきました。 つまり、キーボードでゲームをしろというわけです。 最悪です。 何かよい方法は,ありませんか? 例えば、USBコントローラ対応のソフトで、「それを起動しておけば、コントローラの押したボタンを識別して、キーボードを押す」 ような、コントローラによる、キーボードエミュレータソフトってありませんか?

  • ゲームパッド

    USBゲームパッドを買いました。 しかし、USBゲームコントローラに対応しないと使えないことに気づきました。 つまり、キーボードでゲームをしろというわけです。 最悪です。 USBコントローラ対応のソフトで、「それを起動しておけば、コントローラの押したボタンを識別して、キーボードを押す」 ような、コントローラによる、キーボードエミュレータソフトってありませんか?

  • ゲームパッドにキーボードを割り当てたいのです

    PCゲームをジョイパッドでやろうと思うのですが、ゲームソフトの設定ではジョイパッドを使うことができません。 それでフリーソフトでジョイパッドにキーボードを割り当てできるソフトを昔使ってたのですが忘れてしまって・・・・ わかる人がいましたら教えてくださいませ。 ゲームパッドの十字キーでマウスを操作して ゲームパッドのボタンにそれぞれキーを割り当てしました(エンターとかスペースキーとか)

  • ゲームパッドがつかえません。

    パソコンでファミコンなどのゲームをしてるんですが、今日ゲームパッドを買ってつけてみたところ、認識はされるのですが、どのボタンを押してもゲームができません。 ちなみにゲームパッドはELECOMのJC-U1412TBK(980円)です。 店員は「ゲームパッドのボタンにキーボードを振り分ければ使えます。」と言っていたんですが、どのように設定をすればいいのかわかりません。 コントロールパネルなどの中にそういった設定があるのでしょうか? もしくはそういうソフトが必要なんでしょうか? 誰かわかる方おねがいします。

  • ゲームパッドでマウス操作ができるフリーソフト

    こんにちは 最近ゲームパッドを買い、 マウスが使いにくいと感じていたので、 ゲームパッドをマウスの代わりに使いたいのですが、 ゲームパッドのスティックをマウスポインタの移動にしたり かつ、ボタンを左右のクリックやスクロールや キーボードのキーに割り振れ、 その設定をいくつか保存できるようなフリーソフトを探しています。 (例ゲームパッドの1ボタン→Zキーなど) 設定が簡単で使いやすいフリーソフトを教えてください

  • KillingFloorをゲームパッドでプレイ

    KillingFloorを買いました。 んで、自分はあまりマウスとキーボード操作に慣れていないんですがPS3やXbox360のFPSのゲームは よくやるのでゲームパッドでプレイ出来ればとおもいました でもPCのFPSって基本マウスとキーボードじゃないですか? 無料のFPSでも基本はマウスとキーボードなのでゲームパッドで遊ぶ場合は別のフリーソフトを入れないとパッドで出来ないのが多いですよね KillingFloorも何かフリーソフトを入れないとパッドで遊ぶことはできないのでしょうか?

  • ゲームパッドについて

    パソコン用のゲームバッドはどんなソフトにも使えるのできるのですか? それともゲームパッドに対応したソフトでなければ使用できないのですか? キー入力にしか対応していないゲームでも使えるのですか? またボタンの割り当てはゲームごとに設定するのですか?

  • ゲームパッドについて・・・

    先日、ELECOMのJC-PS101USVというPS2のコントローラをPCで使えるようにする物を買いました 「JoyToley」というキーボードやマウスの操作をゲームパッドに割り当てるソフトを使って、ハーフライフ2をプレイしたのですが 感度が高すぎるのか、アナログスティックの極わずかなブレにも反応してしまい 意図せず移動してしまい、まともに移動が出来ません。 これを解決できる方法をご存知の方はいらっしゃらないでしょうか もう一つよければ答えていただきたいのが、JoyToley以外に、ゲームパッド未対応のゲームを、ゲームパッドで遊べるように出来る方法があれば教えていただけると助かります

  • ゲームパッドへのキーボード割り当て

    USB接続のゲームパッドなどをPCにつなぐと、ゲームパッドの各ボタンをキーボードに対応させることができて(たとえばパッドのボタン1をキーボードのCtrl+Aに)非常に便利です。 ふと思ったのですが、同じように十字ボタンやジョイスティックにキーボードのボタンを割り当てることはできないでしょうか? 例えば十字ボタンの上を押したら、とか、ジョイスティックを下に倒すとF5キーが押される、のように設定したいのです。 私が今使っているJoyAdoptorというソフトでは十字ボタンにマクロを設定することができません。これを可能にするソフトはありますでしょうか?これを設定することによりポインタ移動としての十字ボタンの機能は失われても構いません。 また、それが不可能な場合普通のゲームパッドの4ボタンの上にかぶせてジョイスティックの様に機能させることができるアタッチメント(最近のWiiにつけて十字ボタンをアナログスティックの様に使えるものです)はありますでしょうか?USB接続のジョイパッドも数多く出回っているので、右手側の普通のボタンの上にかぶせるものはおろか、十字ボタンの上にかぶせるものも見つけられない状態です。 誰か知恵をお貸し願えないでしょうか? また、自分でも書いてて思うのですが質問が非常にわかりづらいかと思います。補足要求していただければなるべく早く補足したいと思います。

  • IE操作時、ファイルのダウンロードボタンの押下

    IEをvb.netから操作しています。 webからファイルのダウンロードを自動で行いたいのですが、どのようにすればいいのかわからず悩んでいます。 画像の赤枠で括ってあるボタンの押下を、vb.netからの操作で行いたいのですが、どのようにすれば良いでしょうか。 InternetExplorer.Applicationに何らかのメンバ関数のようなものがあるのか、sendkeysを使うしかないのか、sendkeysを使うなら、具体的にどのキー操作を送れば良いのかなど、お教えいただけないでしょうか。 よろしくお願いします!

専門家に質問してみよう