問題タブ [directinput]
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.
controller - DirectInput PS3コントローラー
DirectInput を使用して、いくつかのアプリケーションの入力デバイスとしてゲームパッド/ジョイスティックにアクセスしています。ほとんどのジョイスティックは認識され、送信されたデータは DirectInput でアクセスできますが、PS3 コントローラーを使用している場合を除きます (いいえ、2 つ持っていて両方をテストしたため、コントローラーは壊れていません)。PS3コントローラーはジョイスティックとして認識されますが、DirectInputでのデータ転送はありません。PS3コントローラーを使用するときに他に何か必要なものがあるかどうか誰か知っていますか?
windows - 排他的な直接入力
ゲームパッドを介して排他的にアクセスできるアプリケーションを構築しようとしています。つまり、私のアプリケーションが実行されると、他のアプリケーションはボタンの押下、ホイールの移動などのゲームパッド アクションを受信したり反応したりしません...
現在への私のアプローチは、DirectInput を使用し、フラグを設定することです。DISCL_BACKGROUND。
しかし、DISCL_EXCLUSIVE は効果がないように見えますか? DISCL_EXCLUSIVE または DISCL_NONEXCLUSIVE を設定するときはいつでも同じです。
そして昨日、私はこれを見つけました: http://www.gamedev.net/topic/656250-directinput-exclusive-access-to-joypad/ 彼が言及したことによると、このフラグは何もしませんか?
私の問題に対する他の解決策はありますか?ありがとう。
windows - WindowシステムのWindowマネージャからでもHIDデバイスを排他的に占有する方法
申し訳ありませんが、私はウィンドウ技術の初心者です。RawInput または DirectInput を使用して、デバイスから入力データを読み取ることができるようになりました。しかし、私は懸念しています:サービス( X と呼ばれる)がゲームパッド(ForeGroundとBackGroundの両方の状態)からデータを読み取ることができるようにしたいです。X は Window manager と Gamepad の間でアソシエートを切断できますか? ありがとう
c# - DirectX ゲーム フック
ゲームでマウス イベントをシミュレートしようとしています。ゲームは DirectInput を使用するため、SendMessage を使用してマウス イベント/キーボード イベントをゲームに送信することはできません。これが、基本的にゲームに接続する必要がある理由です。
また、SendInput/mouse_events を使用したくありません。ゲームはバックグラウンドで実行し、マウス イベントを作成する必要があります。
私はすでにゲーム内で DLL フックを作成することができましたが、次の問題は、マウス イベントとキーボードを作成する必要があることです (おそらく主な問題です)。
前もって感謝します。
c++ - 仮想キー コードからユニコードに変換できません
DirectInput アプリケーションにテキストを挿入する必要があります。SendInput を使用していますが、直接入力では仮想キー コードを使用できないため、Unicode を使用する必要があります。今、注入したくないキーは仮想キー コードとしてファイルに登録されており、リアルタイムで Unicode に変換する必要があります。
これは私のコード文字列です。vk は int の仮想キーで、buffer はwchar_t配列の大きな 1 単位です。ToUnicodeでは機能しなかったため、単純なwchar_tだけでは使用できませんでした。ただし、この関数は毎回 0 を返すだけなので、関数がキーを変換できなかったことを意味します。記録のために、「wasd」などの標準のキーを使用していますが、特殊文字は使用していません。誰かがなぜこれが起こるのかを理解できるなら、私は本当に助けが欲しい.
ご検討ありがとうございます!
編集:また、私の怠惰と戦い、古いスイッチとブレークを記述して値を変換すると便利でしょうか? 例えば。
winapi - DIDEVICEINSTANCE の guidProduct フィールドはどのように生成されますか
DirectInput は、DIDEVICEINSTANCE の guidProduct フィールドの GUID をどのように生成しますか? ドキュメントには次のように書かれています。
guid製品
商品の一意の識別子。この識別子は、デバイスの製造元によって確立されます。
DirectInput を使用せずにジョイスティックの製品 GUID を取得または合成する方法を探しています。RawInput を使用してデバイス パスとクラス GUID を正常に取得しましたが、RawInput や SetupDi* 関数を使用して製品 GUID を取得する方法をまだ見つけていません。
MAKELONG(VID, PID) == guidProduct.Data1
探しているうちに、私がやりたいことを実行する方法があることに希望を持てることに気付きました (結局のところ、DirectInput は何とかそれを実行します)。
質問:
- HID (特にジョイスティック) デバイスの製品 GUID を取得する API はありますか?
- そうでない場合、DirectInput がこのフィールドを合成する方法を知っている人はいますか? (最初のフィールドは VID と PID を組み合わせたものです。残りはどうですか?)
編集:
guidProduct フィールドをハックすることで、興味深い発見に出会いました。P880 USB ゲームパッドの製品 GUID の形式は次のとおりです。
最初の 4 バイトは、明らかにコントローラーの PID と VID です。GUID の最後の部分は、所有しているすべての HID コントローラーに共通です。しばらくすると、それが ASCII 文字であることがわかりました。翻訳は次のとおりです。
SDL2 ゲーム コントローラ データベースを使用してこれを確認したところ、保持されているようです。もちろん、これは bluetooth デバイス (OUYA コントローラーなど) をカバーしていません。これは今のところ小さな問題です。
Bluetoothデバイス用にguidProductがどのように構成されているか知っている人はいますか?
directx - DX 11 の SetCooperativeLevel に相当
SetCooperativeLevel が DX11 でまだ利用できるかどうかを調べようとしています。サポートされなくなった場合、入力デバイスから排他的な入力を取得するための新しい API は何ですか? ありがとう。