gpt4 book ai didi

c# - 有没有办法在Windows 8中模拟触摸事件

转载 作者:可可西里 更新时间:2023-11-01 08:43:08 26 4
gpt4 key购买 nike

有没有办法在 Windows 8(最好是在 Windows 7)中模拟触摸事件。
我知道有一个名为 Multi touch vista 的项目,但我觉得它有点矫枉过正,而且我从来没有让它在多个屏幕上正常工作。
我想做的很简单,我想启动一个可以将触摸事件发送到 Windows 的应用程序,而不需要多个鼠标或类似的东西。
可以做到还是我需要 (MMV) 驱动程序才能做到这一点?

谢谢
/吉米

最佳答案

我在寻找类似的东西并找到了这篇文章 Simulating Touch Input in Windows Developer preview using Touch Injection APIsample code (C++) 可能会回答您的问题。但是,这似乎只适用于 Windows 8(不适用于 Windows 7)。

它模拟点击、按住、拖动、捏合/平移、旋转和横向滑动。

这里是触摸(Tap)代码:

POINTER_TOUCH_INFO contact;
InitializeTouchInjection(1, TOUCH_FEEDBACK_DEFAULT); // Here number of contact point is declared as 1.
memset(&contact, 0, sizeof(POINTER_TOUCH_INFO));

contact.pointerInfo.pointerType = PT_TOUCH;
contact.pointerInfo.pointerId = 0; //contact 0
contact.pointerInfo.ptPixelLocation.y = 200; // Y co-ordinate of touch on screen
contact.pointerInfo.ptPixelLocation.x = 300; // X co-ordinate of touch on screen

contact.touchFlags = TOUCH_FLAG_NONE;
contact.touchMask = TOUCH_MASK_CONTACTAREA | TOUCH_MASK_ORIENTATION | TOUCH_MASK_PRESSURE;
contact.orientation = 90; // Orientation of 90 means touching perpendicular to screen.
contact.pressure = 32000;

// defining contact area (I have taken area of 4 x 4 pixel)
contact.rcContact.top = contact.pointerInfo.ptPixelLocation.y - 2;
contact.rcContact.bottom = contact.pointerInfo.ptPixelLocation.y + 2;
contact.rcContact.left = contact.pointerInfo.ptPixelLocation.x - 2;
contact.rcContact.right = contact.pointerInfo.ptPixelLocation.x + 2;


contact.pointerInfo.pointerFlags = POINTER_FLAG_DOWN | POINTER_FLAG_INRANGE | POINTER_FLAG_INCONTACT;
InjectTouchInput(1, &contact); // Injecting the touch down on screen

contact.pointerInfo.pointerFlags = POINTER_FLAG_UP;
InjectTouchInput(1, &contact); // Injecting the touch Up from screen

另一篇文章:Getting Started with Windows Touch Gestures

关于c# - 有没有办法在Windows 8中模拟触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7507568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com