在Windows 10上注册触摸事件(无需单击鼠标或实际触摸)

时间:2016-12-10 12:57:13

标签: c# windows winapi windows-10 tablet

我正在为Windows 10(PC设备)开发一个使用"平板电脑模式"的功能的应用程序。

我想在给定的x和y位置注册触摸事件(无需鼠标点击或实际触摸)。在C#中处理这种操作的API是什么?

1 个答案:

答案 0 :(得分: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 });
相关问题