問題タブ [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.
linux - XInput2 デバイスを sysfs ノードにマップする
によって報告された XInput2 デバイスをXIQueryDevice
適切なsysfs
ノードに変換するにはどうすればよいですか? デバイスは、evdev
入力ドライバーによって処理される汎用 HID デバイスです。
デバイスの を取得できることはわかってname
います。Xorg.0.log
を見て、このデバイスが追加されたときの適切なログ メッセージを見つけようとすることができるかもしれません/dev/input/event*
。それに関連するデバイス ノードが記載されていることを期待しています。または、 内のすべての入力イベントをsysfs
調べて、その名前のイベントを探し、その名前が一意であり、XInput を介して報告されたものと同一であることを期待します。しかし、これらのいずれよりもクリーンなソリューションがあることを願っています。
c# - Windows UWP での Xbox One のコントローラー サポート
Xbox One をターゲットとする UWP アプリの入力をどのように処理するのか疑問に思っています。DirectInput に気付きましたが、私のユース ケースでは 2 つの問題が見られます。
MSDNから、Xbox 360 コントローラーのみをサポートしているようです
XInput は、アプリケーションが Xbox 360 Controller for Windows から入力を受信できるようにする API です。コントローラーの振動効果と音声の入出力がサポートされています。
DirectX とそのすべての API (Direct2d、Direct3D、Xinput など) は、C / C++ でのみサポートされています。つまり、Xinput が Xbox One コントローラーをサポートしていたとしても、C# や JavaScript を使用して真にユニバーサルなアプリを開発することはできませんでした。
Windows UWP アプリで Xbox One コントローラーのサポートをサポートするために (少なくとも C# に関する限り) どのようなオプションがありますか?
java - Java 仮想ゲームパッド
問題 カスタム ハードウェア コントローラーを開発しており、その入力を Java で処理した後、仮想 XInput コントローラーにマップしたいと考えています。基本的にすべての意図と目的のために、XInput コントローラーを Java から直接制御したいと考えています。
私が考えた解決策
- デバイス ドライバーを作成することは、私が喜んで避けたいお尻の本当の苦痛のように思えます。これまでデバイス ドライバーを作成したことがなく、XInput コントローラーを登録する方法もわかりません。これを行うには非常に長い時間がかかるようです。私には時間がありませんし、費やしたくもありません。
- PPJoy とこのライブラリを使用します。PPJoy は非常に古く (最後の更新から 10 年以上経過しています)、DirectInput を XInput に変換するには追加のレイヤーが必要になるため、これは避けたいと思います。ライブラリもコンパイルを拒否します。
- VJoyのラッパーを開発します。ただし、これには DirectInput から XInput への再マップが必要です。私は C/C++ ラッピングに慣れていませんが、これまでのところ、これが最良の代替手段のようです。
この問題を解決する方法を知っている人はいますか? XInput をスキップすることを検討し、Robot (AWT) を使用してキーボード/マウスで実行しましたが、ゲームはソフトウェア入力の取得を拒否し、おそらくハードウェア データのみを読み取ります。キーボード/マウスをエミュレートすることは問題ありませんが、かなり扱いにくいため最適ではありません。ただし、ゲームが認識する方法でそれを行う方法を見つけることができません。すべての助けに感謝します!
c++ - フォーカスされていないウィンドウで XInput ゲームパッドの状態を受け取る方法は?
シナリオ:クアッドコプター用の基本的な制御プログラムを作成しました。基本的に、ゲームパッドが接続されたノートブックを使用してクアッドコプターにコマンドを送信します。両方が無線で相互に接続されています。この設定は驚くほどうまく機能しますが、次の点に注意してください。
質問:ノートブックで実行されている Win32 アプリケーションは、ウィンドウがフォーカスされていない場合でも、ゲームパッドの状態の変化をどのように受け取ることができますか? AutoHotKey や AutoIt などの一部のプログラムがまさにそれを提供していることは知っていますが、公式の XInput ドキュメントでもインターネットでもドキュメントを見つけることができませんでした。
問題は、同じノートブックで ArduPilot の Mission Planner ソフトウェアを同時に使用することがあるということです。そのため、Mission Planer でテレメトリ データを調べたいと思うたびに、ゲームパッドを処理するアプリケーション ウィンドウがフォーカスされなくなり、ゲームパッドの状態変更の受信が停止します。これは非常に面倒で、正直なところ、危険でもあります。常に機能するラジコンを持っている必要があるからです。
では、ゲームパッド XInput を特定のウィンドウ ハンドルに「ロック」する方法はありますか? (Win32) アプリケーションは、Visual Studio を使用して C++ で記述されています。
編集:ネイティブの XInput API を使用するため、XInputGetState() を使用します。私のメッセージ ループは、翻訳するメッセージ/DispatchMessage() がないたびに XInputGetState() をポーリングするように設計されており、WinMessages はノンブロッキング PeekMessage() でポーリングされます。
usb - USB HID API でプッシュされた両方のゲームパッド トリガーを検出する方法は?
RawInput + Windows USB HID API を使用して、ゲームパッド ボタンが押されたときに WM_INPUT メッセージを受け取り、ゲームパッドの状態を取得します。
問題があります: 2 つのトリガーが同じ軸で機能するため、2 つのトリガーが同時に押されているかどうかを判断できません。OS Windows ゲームパッド テスト アプリケーションを起動すると、同じ動作が見られます。しかし、押されたこれら 2 つのボタンを区別する必要があります。
XInput は必要に応じて機能することに注意してください。2 つのトリガーに対して 2 つの軸が提供されますが、XInput は使用したくありません。これは XBox コントローラー専用であり、Xbox 以外のコントローラーが世界中に多数存在するためです。
USB HID API を介して 2 つの軸を読み取る方法があるはずですが、今まで見つけることができませんでした。問題は解決しましたか?
ゲームパッド: XBox 360 を使用 (ただし、その他はサポートされている必要があります)。
OS:ウィンドウズ7。
IDE: ビジュアル スタジオ 2010。
言語: C++
gtk - タッチスクリーンで Gnome ダブルクリック
Surface Pro 3 (Fedora; Kernel 4.28; Gnome 3.18, Gtk3) でダブルクリックが機能しません。2button
Gtk+ では、2 つの高速連続タップはイベントに変換されません。以下の小さな Python プログラムを参照してください。これは、通常のマウスまたはタッチ パッドで正常に動作します。
プログラムでわかるように、タップ距離ではなく、タップ時間に問題がないことを確認しました。この問題はどこから発生する可能性がありますか? GDK_TOUCH_MASK
?
明確にするために、ボタンイベントは受信されますが、2button
イベントに変換されることはありません
c++ - g++ を使用した C++ XInput コンパイル
__in & __out を取得すると、このスコープ エラーで宣言されませんでした。
以下の構文を使用しました g++ Joypad.cpp -IC:\DirectSDK\Include -LC:\DirectSDK\Lib\x86 -lXinput -o Joypad
g++ Joypad.cpp -IC:\Windows SDK~um,shared, etc -LC:\Windows SDK\Lib -lXInput -o Joypad も試しました
見逃したものはありますか?私はmingw x86_64を使用しています
含まれるディレクトリ: Windows キット 8.1 (um,shared,winrt) Microsoft DirectX SDK
含まれるライブラリ: XInput.lib - C:\Progra~2\Micros~4\Lib\x86
c# - C# | SharpDX.XInput | コントローラーのボタンが 1 回押されたままになっていないかどうかを検出する方法
最近、XBOX 360 コントローラー ドライバーを作成してみました。ボタンが押されているか押されているかを検出する必要があります。したがって、押したままにすると、ボタンを 1 回押すのと同じように、特定の関数も 1 回呼び出されます。これが私のコードです(別の投稿でこのソリューションを見つけましたが、うまくいきませんでした)
このコードを使用すると、ボタンを押したままにすることができ、クリック機能または呼び出されているものは何でもスパムします。
また、押されたときにtrueに設定され、押されていないときにfalseに設定されている「押された」ブール値を使用してみました。そして、「押された」が== falseの場合にのみ呼び出しを行います。
どちらも機能しませんでした。
その問題に対する他の解決策はありますか?
これが悪い質問である場合は申し訳ありません。質問のルールとヒントを読み、重複を検索しましたが、最初の解決策を得たもの以外は見つかりませんでした。
linux - X-treminal で XInput が機能しないのはなぜですか?
アプリxinputでキーボードイベントを表示してみます。私は 3 つのワークステーションで試しています。最初の 2 つのワークステーション (ローカル X セッション内) はすべて良好です。
デバイス リストを取得します。
デバイス イベント:
しかし!3 台のワークステーションに X ターミナルx2go (Windows 7 から接続) から接続します。そして、このワークステーションでは xinpunt はその機能を果たしません。Xinput はデバイスを検出せず、segfault を表示します。
質問 1: X ターミナルから X サーバーへの接続が安定している場合、xinput プリンシパルは機能しませんか? それとも、標準の X11 アプリケーションのバグですか?
質問 2: X ターミナル (x2go) から接続している場合、グローバル キーボード イベント (キーを押して放す) を取得する方法を教えてください。
環境:
接続から: Windows 7 Pro、サイト x2go.org の公式 X2GO クライアント。
接続するには: Debian 7.8、LXDE、サイト x2go.org の公式サーバー X2GO。