2011-09-15 16 views
0

マウスを使用せずに通常のWPFコントロールと対話するUIを作成しようとしています。複数のカーソルをサポートしたいので、通常の入力シミュレーション(SendInputなど)を使用しても機能しません。私はまた、マウスカーソルをシミュレートするためにメッセージSendInputをインターレースしようとしましたが、どちらも動作しませんでした(マウス入力が1つしかありません)。私はまた、Windows MultiPointを使用したくないという制約があります。 カーソル位置がコントロールの上にあることを検出すると、マウスイベントを介してコントロールにイベントを送信(Buttonでテスト)しようとしました:MouseEnterEventMouseLeaveEventMouseMoveMouseDownEventおよびMouseUpEventしかし、MouseDownEventを除いて、どれもうまくいかないようです。複数のマウスイベントをシミュレートする

System.Windows.Input.MouseEventArgs e = 
    new System.Windows.Input.MouseEventArgs(System.Windows.Input.Mouse.PrimaryDevice, DateTime.Now.Millisecond); 
e.RoutedEvent = System.Windows.Input.Mouse.MouseEnterEvent; 
elementUnderCursor.RaiseEvent(e); 

どこelementUnderCursorUIElementです: は、ここで私はMouseEnterEventを送信する方法の一例です。

答えて

0

私は多目的キネクトアプリケーションのために同じことが欲しかったと思うが、あなたがエミュレートされたマウスドライバを持っていれば、あなたのUSBドライバの代わりにそのマウスドライバでイベントが起こったことをアプリに伝える方法を理解しなければならないだろうマウスまたはps/2マウスドライバ。 たとえば、 は、マウス#1、#2のマウスクリックをシミュレートするためにmousedownおよびupイベントを送信します。また、マウス#1、#2のマウスポジションを更新します。 私は上記の理由から、上記のプログラムと同様のプログラムをバックグラウンドでサービスとして実行することで、どのアプリケーションでも動作させたいと考えています。

0

アップデートdsfは、kinectを使用して複数のマウスプロジェクトに取り組んでいるので、仮想マウスデバイスをシミュレートするために動作しますので、サイトの現在の進捗状況を確認してください:http://kinectmultipoint.codeplex.com。 複数のマウスドライバを夜間にインストールすることはできません。 また、Windowsデバイスをシミュレートするためにddkをダウンロードします。あなたのシナリオではtestgenerichid.wsfスクリプトを変更する必要がありますが、それは可能です。

関連する問題