Hello,

First of all, sorry for my English ^^

I'm blocked a problem with sending messages with SendInput and touch screens


Here is the detail of the problem :

I have an application that recovers touch inputs in Raw with "RegisterRawInputDevices"

Then I translate these entries into gestures such as a pan, scale in/out etc ...

Then, using gestures, I send mouse / keyboard messages with SendInput

The problem is that there is an system on the Windows side that does much the same thing, and it conflicts with my application.

For example, when I make a movement with 2 fingers on the touch screen, I send a mouse movement message with the average of the 2 points as position (see image)

Attachment 35807

The cursor is therefore positioned between my 2 fingers (green) but from time to time the cursor jumps to one of the 2 fingers (red)

It seems that the problem is related to wisp

I tried the technique indicate here.
The TouchGate registry no longer exists in “Ordinateur\HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch”

But it is present here : Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wisp\Touch

If I set the TouchGate value to 0 and restart the computer, this partly solves my problem because Windows no longer adds messages and I still have touch inputs from the Raw

The problem is that this technique requires a restart of the computer and that it is applied on the whole system whereas in the ideal I would only like to remove this layer for certain applications

I obviously tried to add this value in HKEY_CURRENT_USER and also tested the technique of updating windows with “SendMessageTimeout” and the message “WM_SETTINGCHANGE” but without success

Summary of my request

How to remove the system (wisp) or others multi touch overlay of Windows, dynamically (without restarting the machine)