C# 如何使用InjectTouchInput轻触两点

C# 如何使用InjectTouchInput轻触两点,c#,windows,winapi,touch,touch-event,C#,Windows,Winapi,Touch,Touch Event,我想用InjectTouchInput()点击两个点(c[0]和c[1]),但只点击了c[1],而没有点击c[0] 有什么不对劲吗 InjectTouchInput()是模拟触摸事件的API 它可以用C#来调用。 使用系统; 使用TCD.System.TouchInjection; 使用静态TCD.System.TouchInjection.TouchInjector; // https://docs.microsoft.com/ja-jp/windows/win32/api/winuser

我想用
InjectTouchInput()
点击两个点(
c[0]
c[1]
),但只点击了
c[1]
,而没有点击
c[0]

有什么不对劲吗

InjectTouchInput()
是模拟触摸事件的API

它可以用C#来调用。

使用系统;
使用TCD.System.TouchInjection;
使用静态TCD.System.TouchInjection.TouchInjector;
// https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-injecttouchinput?redirectedfrom=MSDN
名称空间HelloWorld
{
班级计划
{
专用静态指针Touchinfo createPointer(uint id)
{
var pointer=新指针touchinfo();
//我们可以添加不同的附加触摸数据
指针.TouchMasks=TouchMask.PRESSURE;
指针压力=100;
//指针ID用于手势跟踪
pointer.PointerInfo.PointerId=id;
pointer.PointerInfo.pointerType=PointerInputType.TOUCH;
返回指针;
}
专用静态无效抽头(整数x,整数y)
{
var c=new[]{createPointer(1),createPointer(2)};
//触地
c[0].PointerInfo.PtPixelLocation.X=X;
c[0].PointerInfo.PtPixelLocation.Y=Y;
c[0].PointerInfo.PointerFlags=PointerFlags.INRANGE | PointerFlags.INCONTACT | PointerFlags.DOWN;
c[1].PointerInfo.PtPixelLocation.X=X+110;
c[1].PointerInfo.PtPixelLocation.Y=Y;
c[1].PointerInfo.PointerFlags=PointerFlags.INRANGE | PointerFlags.INCONTACT | PointerFlags.DOWN;
输入(2,c);
//触按触点并过渡到悬停
c[0].PointerInfo.PointerFlags=PointerFlags.INRANGE | PointerFlags.UP;
c[1].PointerInfo.PointerFlags=PointerFlags.INRANGE | PointerFlags.UP;
输入(2,c);
}
静态void Main(字符串[]参数)
{
if(初始化TouchInjection())
{
水龙头(350650);
}否则
{
控制台写入线(“错误”);
}
控制台.WriteLine(“你好,点击模拟!”);
}
}
}
浏览器触摸测试

浏览器测试工作正常。
这可能不是代码问题,但应用程序…

两个手指触摸输入通常会被转换为与右键单击相对应的内容。这可能会造成干扰吗?两个触摸事件不会转换为右键单击。在c[0]点和c[1]点上显示两种触摸效果。(但只点击了c[1])。也许,触地模仿是可以的,但触地模仿是错误的。你可以自己回答。
color for touch with identifier 1 = #100
touchend
color for touch with identifier 0 = #000
touchend
touchstart:0.
color for touch with identifier 1 = #100
touchstart:0...
touchstart.
touchstart:0.
color for touch with identifier 0 = #000
touchstart:0...
touchstart.
initialized.