2016-12-10 15 views
3

ジョイスティックにアクセスするWindowsアプリケーションを作成したいと思います。値を読み込んでサーバーに送る単純なアプリケーションなので、私はゲームプログラミングフレームワークを使用していません。しかし、私は使用するAPIについて混乱しています。非推奨の方法でウィンドウ上のジョイスティックにアクセスするにはどうすればよいですか?

私はMultimedia Joystick APIを見ましたが、これはDirectInputの代わりに記述されています。だから、私はDirectInputを見ましたが、これもまたXInputに賛成です。 しかし、XInputのドキュメントでは、Xbox360コントローラについてのみ説明しており、 "レガシーDirectInputデバイス"はサポートしていないと言います。

マイクロソフトでは、HIDのジョイスティックの使用方法全体をゴミ箱に委託し、独自のコントローラ製品を支持することを断念しましたか、何か不足していますか?

+0

私はLogitech F710ゲームパッドをWindows上で使用しています。これはDInputとXInputの両方のモードをサポートしています(物理スイッチがあります)。 XInputはマイクロソフトの製品に限定されません。 –

+2

マイクロソフトでは、入力スタック実装*(推奨されていない)*のほとんど(すべてではないにしても)にタグを付けました。私はまだ[DirectInput](https://msdn.microsoft.com/en-us/library/windows/desktop/ee416842.aspx)を使ってジョイスティックの入力を処理します。 DirectInputは引き続き積極的にサポートされており、近い将来に提供される予定です。あるいは、[Raw Input](https://msdn.microsoft.com/en-us/library/windows/desktop/ms645536.aspx)を評価し、それをジョイスティック入力にも使用できるかどうかを確認することもできます。 DirectXのすべてのCOMインフラストラクチャーを使用することなく、セットアップが少し楽になります。 – IInspectable

+1

力のフィードバック(「騒音」を超えて)が「遺産」に降格したことは悲しいことです。 –

答えて

1

最も一般的な解決策は、アプリケーションが両方のタイプのデバイスに適切にアクセスできるように、XInputとDirectInputの組み合わせを使用することです。マイクロソフトはinstructions on how to do thisも提供します。

DirectInputはWindows Storeアプリケーションでは使用できませんので、そこを経由して配布する場合はオプションではありません。

XBox 360コントローラのような入力デバイスは、DirectInputでも動作しますが、いくつかの制限があります。特に、左右のトリガーは独立したものではなく、同じ軸にマッピングされ、振動の影響は利用できません。

関連する問題