2009-05-05 15 views
15

私は、身体の不自由な人がゲームを楽にするのに役立つ小さなコードを手伝っています。彼はトラックボールと1つのボタンに限られています。ウィンドウのフォーカスを変更しないようにする

現在、彼はオンスクリーンキーボードを使用しており、それを使用して他のゲームをプレイしています。彼のライブをより簡単にするために少しずつコードを作成しました。キーのホバーボタンを使用します。マウスポインタがボタンに入るとキーを送り、ボタンがボタンを離すとキーを送ります。

私はその作業をしており、彼はそれが好きになると思います。私はそれをテストするとかなりうまくいった。

もう1つの機能を追加したいと思います。私がコントロールしている間にクリックすると、別のキーストロークを送信したい。問題ではない、私はそれを行うことができます。しかし、そのウィンドウをすると、ゲームから私のコントロールにフォーカスが移ります。

私は、MSDNでこれを見つけた:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/48737c2b-7e6f-4ade-ac1c-7dd2f5cc2b88/

活性化から私の窓を防ぐために動作しますが、それはまだゲームがフォーカスを失う原因となります。私はゲームにフォーカスを戻すことができますが、フォーカスを失ったことがない場合は好きです。

私はC#とWPFでコーディングしています。

どのようにすればいいですか?ジョン・フェントン

+0

このページを試してください:http://stackoverflow.com/questions/2444842/keest-an-application-on-top-and-in-focus-always/3338447#3338447 – MonkeyWrench

+0

これはうまくいかないでしょう、MonkeyWrench。それはあなたのウィンドウを一番上に保ちますが、それがゲームからのフォーカスを盗むのを妨げません。 –

答えて

2

いくつかの低レベルのマウスとキーボードフックフック、およびアプリケーション

は、フォーカスを盗み、それをお返しする必要はありません。

an article by Stephen Toubに大いに基づいているthis pastie of a simple WPF appを見てください。

クリックしたときはいつでもどこでも2回目の左クリックが送信されるので、効果的にダブルクリックします。ユーザーがクリックするたびにアプリを隠すことで目標を達成することができるため、アプリが決してフォーカスを奪うことはありません。次に、クリックの位置を検出し、いずれかのボタンが押されたかどうかを判断し、それに応じて行動します。

私はこれを過去から掘り起こしていますが、うまくいけば誰かがこの回答を参考にしてくれます。乾杯、あなたのプログラミングを仲間の人間を助けるためにあなたのために良い!

関連する問題