問題タブ [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.

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

directx - Directinput がマウス ボタンを検出しない

ゲームで DirectInput を使用して入力を処理していますが、以前の PC ではすべて正常に動作していました。しかし、PC を変更する必要がありました。新しい PC は Dell Inspiron 3542 で、Directinput はマウス ボタンを検出しません。

外部マウスを接続せずにこの問題を解決することは可能ですか?

前もって感謝します

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

c++ - 関数ポインタ - DInput8.dll フック コードの引数の目的

DirectInput8 フック プロジェクトの 1 つの引数の目的を理解しようとしています。ここでオープンソースコードの一部を作成しています。簡潔にするために、いくつかの機能のみを掲載しています。

お気づきかもしれませんが、コードは関数をリダイレクトされた (フックされた) 関数に置き換えています。私の質問は、xCreateDevice 関数の最初の引数についてです。しかし、ここで 4 つのパラメーターが使用されている理由がわかりません。元の「oldCreateDevice」を指していますか?それとも別のものですか?

誰かがこれについて私を案内してくれることを願っています。ありがとう

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

c++ - Windowsジョイスティックイベントをプログラムで起動しますか?

問題

C++ を使用してWindows ジョイスティック移動イベントをプログラムでスローしたい のですが、方法がわかりません。

誰かが、独自のカスタム デバイス ドライバーを作成することについて言及していました。私は前にそのようなことをしたことがありません。

誰かが私を正しい方向に向けることができますか?

私は何を試しましたか?

1) 私は最初にVJoyを調べました。これは、これを行う方法としてSDKです。

デモ コードを実行しましたが、Vjoy ドライバーがインストールされている必要がありました。これを実行しようとしましたが、「Msvcrt.dll ファイルにプロシージャ エントリ ポイントが見つかりません」というエラーが表示され、インストールが失敗しました。

マイクロソフトが提案した修正は...

...Windows XP 回復コンソールを使用して、Msvcrt.dll ファイルを元のバージョンに置き換えます。

(Msvcrt.dll のバージョンは 7.0.2600.0 である必要があると思いますが、私のバージョンは 7.0.2600.5512 です。)

これには Windows XP CD-ROM が必要でしたが、私は持っていません。

2)このチュートリアルに従って、DirectX DirectInput コンポーネントを使用して同じことを達成できると思っていました。また、 DirectX SDKをインストールして、必要な .lib ファイルとヘッダー ファイルを取得しました。

チュートリアルは言った:

DirectInput 関数を使用するには、DirectInput ヘッダー ファイルをインクルードする必要があります。

#include <dinput.h>

最終的なアプリケーション バイナリをリンクするには、次のライブラリをプロジェクトに含める必要があります。

dinput8.lib dxguid.lib

ライブラリを正しくリンクしましたが、dinput.h をインクルードしてビルドすると、次のエラーが発生しました。

追加情報

Windows XP を使用しています。

私はC++の初心者です。

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

c++ - DirectInput と WinAPI 入力関数はどのように通信できますか?

WinAPI SendInput()関数を使用してマウス入力をシミュレートし、 DirectInputを使用してすべての入力を制御するゲームでテストする簡単なプログラムを作成しました。その結果、このプログラムはマウス クリックをシミュレートします。しかし、私が知っているように、DirectInputは入力デバイス ハードウェアと直接通信し、WinAPI はメッセージ ループを使用します。 では、DirectInput と WinAPI はどのように通信するのでしょうか?

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

java - Java 仮想ゲームパッド

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

私が考えた解決策

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

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

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

c# - SendInput ラッパーを使用してキーストロークを DirectX アプリケーションに送信する際の問題

しばらくの間、キーの押下を DirectX アプリケーションに送信しようとしていて、打ち続けています。私は C# を初めて使用するので、より複雑な関数のいくつかは頭を悩ませますが、できる限りそれらをつなぎ合わせようとしています。

SendInput は、私が把握できないように見えるものの 1 つです。

以下を含むいくつかの異なる SendInput ラッパーを使用して、物事を簡素化しようとしました。

http://inputsimulator.codeplex.com/

http://www.codeproject.com/Articles/117657/InputManager-library-Track-user-input-and-simulate

インターセプターと呼ばれる別のもの

それらはすべて、ほとんどのアプリケーションにキープレスを送信しますが、アクティブなゲームウィンドウに送信することはまだできません.

SendKeys も試しました。

私は自分でキーボード フックを配置しようとしましたが、高度すぎて自分で理解できず、コードがエラーだらけになってしまいました。

ここにコードを投稿すると(単純なサーバーアプリ)、誰かがキーボードフックをどこにどのように配置するかを説明できるかもしれないと思っていました。

あらゆる場所を検索した後、次のスニペットは、シミュレートされたキー ストロークを DirectX アプリケーションで動作させるための最良のチャンスのようですが、多数のエラーや使用できないコードなしでコードに実装することはできませんでした。

次のセクションでCTRL+Tコマンドを送信できると思いますが、100% 確実ではありません。

ここで私が本当に苦労しているのは、既存のコードにキーボード フックを配置し、サーバーの残りの部分を適切に機能させる方法です。これらのキーストロークを機能させることは、私のプロジェクトの最後の部分であり、非常にイライラし始めているので、助けていただければ幸いです!



更新 今回は を使用して別の試みを行いましたkeybd_event()が、何らかの理由で同じ問題が発生しました。ゲーム内を除いてどこでも機能します。

DirectInput コードではなく VK コードを使用しています。それが問題であるかどうかはわかりませんが、代わりに DI コードを使用すると、コードの別の部分を変更する必要があるのではないかと心配しています。私は知りません。

今回試したことの抜粋は次のとおりです。

コードに問題があるのか​​、それともまだ間違った方法を使用しているのかわかりません。



更新 2 今回は を使用して再試行しSendMessageましたが、 でエラーが発生しているため、ビルドできませんでしたhWnd。「名前 hWnd は現在のコンテキストに存在しません」

0 投票する
2 に答える
1806 参照

c# - SharpDX directinput を使用してジョイスティック GUID を見つけることができません

作成中のゲームに ps3 コントローラーを使用しようとしています。私は、sharpDX.DirectInput 拡張機能をビジュアル スタジオの XNA ソリューションにダウンロードし、C# .NET を使用してジョイスティックから入力を取得するの Valdemar の回答から一見単純なコードを使用しました。私はすでに問題を、彼がコントローラーの GUID や、キーボードなどの他の USB 接続デバイスの GUID を見つけることができないという事実に絞り込みました。ただし、ラップトップの統合キーボードでは機能します。これが私のコードです:

問題は、コントローラーが null のままであることです。これは、GUID が空のままであることを意味し、GetDevices メソッドがゲームパッドを見つけられないことを意味します。コントローラーがWindows 7で完全に機能し、デバイスマネージャーでHIDおよびWindowsクラスのMicrosoft共通コントローラーとして表示されるため、これは奇妙です。

ところで、Microsoft.DirectX.directInput を使用して同じ問題が発生しました。

読んでくれてありがとう :)