2011-09-21 14 views
11

? Existe una manera de simular eventos táctiles en Windows 8 (y preferiblemente en Windows 7).
Sé que hay un proyecto llamado Vista multitáctil pero creo que es un poco exagerado y nunca funcionó correctamente con varias pantallas.
Lo que quiero hacer es muy simple, quiero iniciar una aplicación que pueda enviar eventos táctiles a Windows sin necesidad de múltiples mouse ni nada por el estilo.
¿Se puede hacer o necesito un controlador (MMV) para hacer eso?¿Hay alguna forma de simular eventos táctiles en Windows 8

Gracias
/Jimmy

Respuesta

5

Estaba buscando algo similar y he encontrado este artículo Simulating Touch Input in Windows Developer preview using Touch Injection API y sample code (C++) puede responder a su pregunta. Sin embargo, esto parece funcionar solo en Windows 8 (no en Windows 7).

Simula Tap, Hold, Drag, Pinch/Pan, Rotate y Cross-Slide.

Aquí es el toque (Tap) código:

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 

Otro artículo: Getting Started with Windows Touch Gestures

4

no he tenido la oportunidad de probar a mí mismo, pero de acuerdo con this article, el simulador se incluyen con el Windows 8 Vista previa de Dev permite la simulación de zoom y rotación gestos multi-touch vía un ratón.

se puede ver una demostración de este aproximadamente a las 35:40 de esta sesión de la conferencia BUILD: Tools for building Metro style apps

+1

no quiero utilizar el simulador Quiero enviar eventos táctiles al sistema operativo directamente. –

0

Creación de un controlador virtual de Hid parece ser la única manera.

Cuestiones relacionadas