2016-12-10 33 views
0

"タブレットモード"の機能を使用するWindows 10(PCデバイス)のアプリケーションを開発しています。Windows 10でタッチイベントを登録する(マウスクリックや実際のタッチなし)

タッチイベントを特定のxとyの位置に(マウスクリックや実際のタッチなしで)登録したいと考えています。 C#でこの種のアクションを処理するためのAPIは何ですか?

+0

ご使用のプラットフォーム(Win32またはUWP)、タッチ電子を作成しますか通気するか、それを聞く? –

+0

私は質問を更新します、それはPCデバイスです@OlehNechytailo –

答えて

2

Windowsでタッチイベントをシミュレートしたい場合は、Win32 APIがあります。

MSDN: InjectTouchInput

NuGet: C# wrapper

は、Windows 10は、圧力、接触面積、ペン、タッチ、マウス、マルチタッチを含め、可能であることを絶対にポインタ入力の任意の組み合わせをシミュレートすることができ、など

サンプルコード:

//usings: 
using TCD.System.TouchInjection; 
using static TCD.System.TouchInjection.TouchInjector; 


// code: 

InitializeTouchInjection(); 

var pointer = new PointerTouchInfo(); 

//We can add different additional touch data 
pointer.TouchMasks = TouchMask.PRESSURE; 
pointer.Pressure = 100; 


//Pointer ID is for gesture tracking 
pointer.PointerInfo.PointerId = 1; 
pointer.PointerInfo.pointerType = PointerInputType.TOUCH; 

pointer.PointerInfo.PtPixelLocation.X = 200; 
pointer.PointerInfo.PtPixelLocation.Y = 200; 

pointer.PointerInfo.PointerFlags = PointerFlags.INRANGE | PointerFlags.INCONTACT | PointerFlags.DOWN; 

InjectTouchInput(1, new[] { pointer }); 

//Hold touch for some time 
Thread.Sleep(100); 

pointer.PointerInfo.PointerFlags = PointerFlags.UPDATE; 

InjectTouchInput(1, new []{ pointer }); 
+0

サードパーティのコンポーネントにアクセスできない場合は、このポストが有効になるようにします。第三者のコンポーネントに依存しない回答を提供してください。さらに、タッチインジェクションAPIはWindows 8から利用可能です。これは解決策ではないWindows(Vista、7)のサポートされているバージョンがあるため、これは重要な詳細です。 – IInspectable

関連する問題