2016-12-10 1 views
0

Ich entwickle eine Anwendung für Windows 10 (PC-Gerät), die die Fähigkeit von "Tablet-Modus" verwendet.Registrierung eines Touch-Ereignisses unter Windows 10 (ohne Mausklick oder tatsächliche Berührung)

Ich möchte ein Berührungsereignis an einer bestimmten x- und y-Position registrieren (ohne einen Mausklick oder eine tatsächliche Berührung). Was sind die APIs für die Behandlung dieser Art von Aktion in C#?

+0

Können Sie bitte klären: Ihre Plattform (Win32 oder UWP), möchten Sie einen Touch e erstellen entlüften oder anhören? –

+0

Ich aktualisiere die Frage, es ist ein PC-Gerät @OlehNechytailo –

Antwort

2

Wenn Sie Touch-Ereignis in Windows simulieren möchten, gibt es eine Win32 API dafür.

MSDN: InjectTouchInput

NuGet: C# wrapper

können Sie simulieren absolut beliebige Kombination von Zeiger-Eingang, dass Windows 10 ist in der Lage, einschließlich Druck, Kontaktfläche, Stifte, touch, Maus, Multi-Touch, usw.

Beispielcode:

//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

Im Falle, dass die 3rd-Party-Komponente unzugänglich wird, wird dieser Beitrag nutzen, um nützlich zu sein. Bitte geben Sie eine Antwort an, die nicht auf Komponenten von Drittanbietern beruht. Außerdem ist die Touch-Injection-API ab Windows 8 verfügbar. Dies ist ein wichtiges Detail, da es immer noch unterstützte Versionen von Windows (Vista, 7) gibt, wo dies keine Lösung ist. – IInspectable

Verwandte Themen