問題タブ [xinput]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
9471 参照

c# - Windows UWP での Xbox One のコントローラー サポート

Xbox One をターゲットとする UWP アプリの入力をどのように処理するのか疑問に思っています。DirectInput に気付きましたが、私のユース ケースでは 2 つの問題が見られます。

  1. MSDNから、Xbox 360 コントローラーのみをサポートしているようです

    XInput は、アプリケーションが Xbox 360 Controller for Windows から入力を受信できるようにする API です。コントローラーの振動効果と音声の入出力がサポートされています。

  2. DirectX とそのすべての API (Direct2d、Direct3D、Xinput など) は、C / C++ でのみサポートされています。つまり、Xinput が Xbox One コントローラーをサポートしていたとしても、C# や JavaScript を使用して真にユニバーサルなアプリを開発することはできませんでした。

Windows UWP アプリで Xbox One コントローラーのサポートをサポートするために (少なくとも C# に関する限り) どのようなオプションがありますか?

0 投票する
1 に答える
1570 参照

java - Java 仮想ゲームパッド

問題 カスタム ハードウェア コントローラーを開発しており、その入力を Java で処理した後、仮想 XInput コントローラーにマップしたいと考えています。基本的にすべての意図と目的のために、XInput コントローラーを Java から直接制御したいと考えています。

私が考えた解決策

  • デバイス ドライバーを作成することは、私が喜んで避けたいお尻の本当の苦痛のように思えます。これまでデバイス ドライバーを作成したことがなく、XInput コントローラーを登録する方法もわかりません。これを行うには非常に長い時間がかかるようです。私には時間がありませんし、費やしたくもありません。
  • PPJoy とこのライブラリを使用します。PPJoy は非常に古く (最後の更新から 10 年以上経過しています)、DirectInput を XInput に変換するには追加のレイヤーが必要になるため、これは避けたいと思います。ライブラリもコンパイルを拒否します。
  • VJoyのラッパーを開発します。ただし、これには DirectInput から XInput への再マップが必要です。私は C/C++ ラッピングに慣れていませんが、これまでのところ、これが最良の代替手段のようです。

この問題を解決する方法を知っている人はいますか? XInput をスキップすることを検討し、Robot (AWT) を使用してキーボード/マウスで実行しましたが、ゲームはソフトウェア入力の取得を拒否し、おそらくハードウェア データのみを読み取ります。キーボード/マウスをエミュレートすることは問題ありませんが、かなり扱いにくいため最適ではありません。ただし、ゲームが認識する方法でそれを行う方法を見つけることができません。すべての助けに感謝します!

0 投票する
0 に答える
1117 参照

c++ - フォーカスされていないウィンドウで XInput ゲームパッドの状態を受け取る方法は?

シナリオ:クアッドコプター用の基本的な制御プログラムを作成しました。基本的に、ゲームパッドが接続されたノートブックを使用してクアッドコプターにコマンドを送信します。両方が無線で相互に接続されています。この設定は驚くほどうまく機能しますが、次の点に注意してください。

質問:ノートブックで実行されている Win32 アプリケーションは、ウィンドウがフォーカスされていない場合でも、ゲームパッドの状態の変化をどのように受け取ることができますか? AutoHotKey や AutoIt などの一部のプログラムがまさにそれを提供していることは知っていますが、公式の XInput ドキュメントでもインターネットでもドキュメントを見つけることができませんでした。

問題は、同じノートブックで ArduPilot の Mission Planner ソフトウェアを同時に使用することがあるということです。そのため、Mission Planer でテレメトリ データを調べたいと思うたびに、ゲームパッドを処理するアプリケーション ウィンドウがフォーカスされなくなり、ゲームパッドの状態変更の受信が停止します。これは非常に面倒で、正直なところ、危険でもあります。常に機能するラジコンを持っている必要があるからです。

では、ゲームパッド XInput を特定のウィンドウ ハンドルに「ロック」する方法はありますか? (Win32) アプリケーションは、Visual Studio を使用して C++ で記述されています。

編集:ネイティブの XInput API を使用するため、XInputGetState() を使用します。私のメッセージ ループは、翻訳するメッセージ/DispatchMessage() がないたびに XInputGetState() をポーリングするように設計されており、WinMessages はノンブロッキング PeekMessage() でポーリングされます。