我正在尝试使用 InjectTouchInput 函数来模拟触摸板的触摸屏行为。但是,目前在调用 InjectTouchInput 来模拟光标移动时,滑动或单击触摸板(通过 I2C)时没有响应。
模拟运动的代码: 下面是一个示例代码供参考:
if (bool_down) {
var p2 = getPos();
int nMoveIntervalX = (int)((p2.X - pp.X));
int nMoveIntervalY = (int)((p2.Y - pp.Y));
//Simulating touch - movement.
contact.Move(nMoveIntervalX, nMoveIntervalY);
oFlags = PointerFlags.UPDATE | PointerFlags.INRANGE | PointerFlags.INCONTACT;
contact.PointerInfo.PointerFlags = oFlags;
TouchInjector.InjectTouchInput(1, new[] { contact });
public void Move(int deltaX, int deltaY) {
PointerInfo.PtPixelLocation.X += deltaX;
PointerInfo.PtPixelLocation.Y += deltaY;
ContactArea.left += deltaX;
ContactArea.right += deltaX;
ContactArea.top += deltaY;
ContactArea.bottom += deltaY;
}
[DllImport("User32.dll")]
public static extern bool InjectTouchInput(int count, [MarshalAs(UnmanagedType.LPArray), In] PointerTouchInfo[] contacts);
下面是一个示例代码供参考:
https://github.com/hbl917070/Mouse2Touch
目前,以下类型的鼠标/触摸板是可以的:外部 USB 电缆鼠标、无线鼠标和通过 PS2 的触摸板。
有什么解决方案可以解决它吗?
此问题由: When using the InjectTouchInput function, the touchpad(via I2C) is not working - Microsoft Q&A 总结而来