Feed on
Posts
Comments

Multi-touch (MT) is a big part of Windows 7.   MT is exciting and opens up new choices for UI interaction but the enthusiasm will quickly fade if you don’t have a multi-touch enabled monitor.

Albatron Multi Touch

Figure 1: Albatron Multi-touch.

The good news is that there are multi-touch devices coming soon to your favorite hardware dealer.  Hardware vendors like HP, Dell and Albatron want to have their products available before the October 22nd, 2009 release of Window 7. DigitTimes reports that a number of companies will be competing for a place on your desktop.

Touch panel makers, including eTurbo Touch, Mildex Optical, and Integrated Digital Technologies (IDT), are showcasing multi-touch technology supporting Microsoft Windows 7 at the ongoing Computex 2009.

The touch panel makers are introducing improved capacitive touch panels for medium- to large-size products, with prices 50-60% more than traditional capacitive touch panels and 60-80% less than projective capacitive touch panels, according to market sources.

 

Multi-touch painting

Figure 2: Multi-touch painting.

Developing MT Applications Without a MT Device

One of the biggest obstacles in programming and testing a multi-touch (MT) application is enabling developers who don’t have MT computers to interact in a simulated MT way.

The Surface team solved this problem by creating a Surface emulator.   Since the Surface has a five camera vision system buried in the depths of the table they needed to create a emulator that mimics that camera system on a normal PC.

It’s similar if you plan on adding MT to your Windows 7 application.  For various reasons your dev team may not have MT devices for all team members.  Both testers and developers need a way simulate user touches from their legacy hardware.  Unfortunately there is no official emulator available from Microsoft.  But there is a third party work-around that solves that problem.

Multi-Touch Vista  on CodePlex to the Rescue

Multi-Touch Vista is a user input management layer that handles input from various devices (touchlib, multiple mice, TUIO etc.) and normalises it against the scale and rotation of the target window. Now with multi-touch driver for Windows 7. — http://multitouchvista.codeplex.com

The Multi-Touch Vista project on CodePlex, despite what you’d infer from the name, is intended to run under Windows 7.  It provides a multi-touch driver and services for your computer, which enables you to use multiple mice to simulate MT input in your application, even though your computer may not have a MT device attached.

Downloading MultiTouchVista

The directions on the Codeplex site are a little vague.  Here is what worked for me.

The first step is to download the latest release from the Multi-touch CodePlex site. Unzip the files into any folder on your hard drive (see Video 1).

Video 1: Downloading the project.

Installing Drivers

Windows 7 supports input from a lot of devices. There are the traditional input devices, (mouse and keyboard), tablet PC pens (stylus) and touch specific input (contacts). MultiTouchVista installs a driver that tricks Windows 7 into thinking your multiple mice are really touch contacts.  Then you can simulate applying two finger rotations to your screen entities via your two mice

Installing this driver is easy.  Find the Install Driver.cmd fill in Windows Explorer and double-click it.

Install driver.cmd

Figure 3: Install driver.cmd

To verify that the driver is installed open the Pen and Touch dialog.  The last two tabs, Touch (Figure 4) and  Panning (Figure 5) are visible if Windows detects a touch input device. 

Touch tab in settings dialog

Figure 4: Touch tab in settings dialog.

image

Figure 5: Panning tab in settings dialog.

Watch the video (Video 2) to see how to install the multi mouse drivers.

Video 2: Installing the drivers.

Starting the Necessary Services

The last step is to start the two services provided by MultiTouchVista project.  From the install folder run Multitouch.Driver.Services.exe and Multitouch.Service.Console.exe (Figure 6). 

Service and configuration applications

Figure 6: The service and configuration applications

Once the Multitouch.Service.Console.exe starts you will see a red dot on the screen for each mouse attached to your computer. In the screenshot (Figure 7) of my laptop there are three red dots.  One dot for my laptop touchpad and two dots for each of the connected mice.

image

Figure 7: The three red contact dots.

The MultiTouchVista API also provides a simple configuration tool(Multitouch.Configuration.WPF.exe) that blocks the Windows 7 native input.  Be careful, when using this utility.  If you choose this option your mice will no longer interact with any Windows 7 window.  They will work within your touch enabled WPF application but  not on the rest of the Window UI.
This last video shows how to start these services (Video 3).

Note:  The audio encoding for this is distorted.  I will encode again and repost.

Video 3: Starting the services.

Virtual PC and MultiTouchVista

I tested MultiTouchVista on a couple Windows 7 images running on Virtual PC and it doesn’t work.  I’m guessing that is due to the way VPC handles multiple mouse input.  I also attempted to test on Sun’s Virtualbox but I couldn’t install Windows 7 RC on the Virtualbox drive image.

5 Responses to “Developing Win 7 Multi-Touch Apps Without a Multi-Touch Screen”

    • Peter says:

      hi

      I tried your how-to, but I can’t click anything. I can move my mouse cursor and the two red dots. But I only get mouse clicks from my mouse cursor.

      Can I test MT in MS PAINT? I’ve read that it supports Multitouch?

  1. tim says:

    Also unable to click anything on this end. Perhaps it only works on your app?

    • George says:

      open Multitouch.Service.Console.exe and Multitouch.Driver.Console.exe end will work.
      Do not close those windows if you want to use multi touch …
      If you do not open Multitouch.Driver.Console.exe you will not be able to use click …

  2. Michael says:

    Nothing here either. Could you provide more information ? I get the red dots, but no WM_TOUCH inputs - plus the driver seems to freeze from time to time (x64).

Leave a Reply