4

I'm having a rather odd problem with a C# and WPF HMI I am working on currently. The HMI is a fairly complex program which allows the use to add and remove modules from a work area, dragging and resizing them to make the page they work on customizable. It works well, and after optimizations actually runs smoothly and works wonderfully with touch and animations. One gesture in particular is rather helpful, as you can (using multi-touch) place two fingers down on the screen and swipe left or right to change pages.

However, I have lately been getting complaints from our apps department that the touch will randomly stop working for any sort of complex movement, read as any sort of multi-touch. I spent a few hours tracking down what the problem was and it turned out, oddly enough to be linked to windows Calculator. Whenever calculator is opened, and subsequently closed, multi-touch ceases to function, and any breakpoints placed in the code show only a single touch being used. I took to the internet, and found a few articles corroborating the issue, but nothing even hinting at a fix other than don't allow calculator to work, which is sadly not an option as this HMI is meant for engineers who are manufacturing precision parts and they are a bit attached to calculator.

I stripped the problem down to its basics in which I made a simple c# and WPF touch app which kept track of how many touches it got, just to make sure its not just shoddy programming in the HMI. After getting the same results, no matter what I tried, I came here hoping someone else has run into and perhaps fixed this issue.

Here are some specs:

  • This HMI runs on Windows 7 and it is fully updated.
  • It is a C# program using Unity containers, Prism, and WPF
  • The touch is being handled through simple OnPreviewTouchDown and TouchDown events
  • It doesn't matter if I run calculator through a Process in C# or if we run it from the actual OS, nor how we close the program, all permutations result in the same effect on every machine in the building with a touch screen.
  • It is an ELO touch screen with the newest drivers, though I have also tried it with a Vista Multitouch simulator and get the same results

Any sort of assistance or direction would be much appreciated. Thanks!

Aktra
  • 63
  • 4

1 Answers1

1

You are right. Microsoft released a fix recently for this issue for Windows 8 and other OS's, perhaps it applies to Windows 7 too.

Multi-touch gesture does not work after you exit the Calculator in Windows

Symptoms

This issue occurs in applications that are started before you close the Windows Calculator (calc.exe) in Windows 8.1, Windows RT 8.1, or Windows Server 2012 R2.

Cause

This issue occurs because the Calculator exits and changes a property. This causes the affected applications to stop responding to multi-touch.

Resolution

We have released an update to resolve this issue. See https://support.microsoft.com/en-us/kb/3024755

Workaround

To work around this issue, close and reopen the affected applications after the Calculator exits.

David d C e Freitas
  • 7,481
  • 4
  • 58
  • 67