0

そのため、外部モーション コントローラー デバイス (Myo) を受け取ったので、特定のモーションが基本的にキーストロークまたはキープレスをグローバルにシミュレートするアプリケーションを作成したいと考えています (アプリケーションは関係ありません)。これは、プログラムがバックグラウンドで実行されているときに発生するため、モーション入力を受け取り、キーボードを押すと出力されます。

例として、前景 (全画面) で野球の試合をしていて、ピッチング モーションを行うと、プログラムはゲームでピッチングを行うキーを出力します (どのキーでも)。

私は C# の SendKeys クラスを調べましたが、できること (特にグローバルなキープレス送信) に関して制限があるかもしれないと感じています。

C# を使用して、モーション コントローラーのアクションをキープレスにマップできるプログラムを作成できる良い方法はありますか? また、鍵の保持についてはkey_downとkey_upができると良いです。

4

2 に答える 2

0

これが C# ソリューションではないことはわかっていますが、Myo Connect のMyo Scriptインターフェースは本質的にこの目的のために構築されており、他に何もないとしても、おそらくテストする最も簡単な方法です。

Myo Script を使用してキーボード コマンドを送信するには、myo.keyboard()(docs here ) を使用できます。

スクリプトを常にアクティブにしたい場合は、アプリケーション マネージャー内のスクリプトの場所に一貫return trueonForegroundWindowChange()て注意を払う必要があります。アプリケーション マネージャーの上部にあるスクリプトが最初にチェックされるため、特定のアプリケーションの制御を「必要とする」別のスクリプトがその上にある場合、スクリプトは失敗する可能性があります。

于 2015-01-16T22:32:08.090 に答える
0

真にグローバルなキー押下を実現する最も直接的な方法は、キーボードをエミュレートすることです。これには、何らかの形でバックグラウンド プログラムへのアクセスを提供するキーボード ドライバーの作成が含まれます。ただし、これには非常に複雑なカーネル プログラミングが含まれます。

別の方法として、SendKeysAPI をいくつかのロジックと組み合わせて使用​​し、現在アクティブなアプリケーションを見つけることもできます。

于 2015-01-16T21:17:55.383 に答える