0

ゲームパッドを介して排他的にアクセスできるアプリケーションを構築しようとしています。つまり、私のアプリケーションが実行されると、他のアプリケーションはボタンの押下、ホイールの移動などのゲームパッド アクションを受信したり反応したりしません...

現在への私のアプローチは、DirectInput を使用し、フラグを設定することです。DISCL_BACKGROUND。

しかし、DISCL_EXCLUSIVE は効果がないように見えますか? DISCL_EXCLUSIVE または DISCL_NONEXCLUSIVE を設定するときはいつでも同じです。

そして昨日、私はこれを見つけました: http://www.gamedev.net/topic/656250-directinput-exclusive-access-to-joypad/ 彼が言及したことによると、このフラグは何もしませんか?

私の問題に対する他の解決策はありますか?ありがとう。

4

1 に答える 1

0

ただしDISCL_EXCLUSIVE | DISCL_BACKGROUND、デバイスへの排他的アクセスを提供するつもりはありません。フォアグラウンド アプリケーションは、排他的であるかどうかにかかわらず、常に優先されます。ユーザーからコントロールを盗むべきではありません。

それで、それは何のために良いですか?バックグラウンドで実行されている複数のアプリケーション。これがほぼ唯一の使用例であり、ユーザーの観点から妥当な唯一の点でもあります。アプリケーションが、すでに排他的に使用されているデバイスへの排他的アクセスを要求すると、そのうちの 1 つが失敗し (IIRC が古い方)、デバイスを再取得する必要があります (もちろんそうすべきではありません。コントロール用:))。

ほとんどの場合、単純に を使用する必要がありますDISCL_NONEXCLUSIVE | DISCL_FOREGROUND。排他的なバックグラウンド アクセスは、メディア プレーヤーの制御などを目的としています :)

于 2014-07-11T09:03:07.883 に答える