转载自:http://www.mt2a.com/viewthread.php?tid=1847
概述
MultiTouch Vista是一个输入管理层,处理来自CCV等触点追踪软件和其它设备输入的信息,并且提供了一个Windows 7驱动,利用这个驱动,可以让多点触摸设备控制Windows 7。
使用
这里介绍MultiTouch是因为我们需要用到它的多鼠标操作,也就是当做模拟器来使用和控制Windows 7的驱动。
当做模拟器使用
--安装驱动
找到Driver文件夹,根据自己的机器类型,选择x32文件夹或x64文件夹,进入选择的文件夹,找到名为Install driver.cmd的命令行程序,双击安装,如有必要,可使用管理员身份安装。
稍等一会,你将会看到下面的提示框
这个对话框的意思是询问是否安装这个设备软件,点击安装(Install)。
当安装过程结束,你可以看到下面的命令行窗口,现在,你可以关闭这个命令行窗口了。
--设备管理器
现在,我们打开设备管理器。打开之后,展开“人体学输入设备”。
右击“Universal Software HID device”,选择“禁用”以禁用这个设备。
你会看到一个对话框,上面提示是否禁用这个设备,点击“是”。
再次右击“Universal Software HID device”,选择“启用”以启用这个设备。
--笔和触摸控制面板
在开始菜单搜索框里搜索“笔和触摸”,然后打开笔和触摸控制面板。如果搜索不到,那么说明系统没有触摸设备或没有正确安装触摸驱动,可以按照前面的步骤重新来过。打开之后,切换到“触摸”选项卡,勾选“在屏幕上的项交互时显示触摸指针”
--运行多点触摸模拟器
插上另一只鼠标,运行 Multitouch.Service.Console.exe
现在会出现一个命令行窗口,还可以看见两个红点,这两个红点就是两只鼠标的光标
运行Multitouch.Driver.Console.exe,然后你会看到另外一个命令行窗口。
运行Multitouch.Configuration.WPF.exe
点击“Configure deveice”,然后勾选此项。
现在,系统的光标将会被临时禁用,可以使用两只鼠标的红色光标来控制电脑,每个光标代表一个鼠标。
把两个红点分别当做两个触点,然后进行手势操作,比如单击、缩放、旋转等
Windows 7 驱动
MultiTouch Vista的最大亮点在于它内置了一个Windows 7驱动,利用这个驱动,可以将TUIO信息转换为WM_TOUCH信息,从而被系统所识别。也就是说,我们自己做的设备,也可以操控Windows 7,享受Windows 7的多点触摸特性。
现在我们来安装并配置这个驱动。
前几步操作与上文中完全一样,大家可以按照上文中“安装驱动”、“设备管理器”和“笔和触摸控制面板”的内容进行操作,操作完成之后,进行下一步。
运行 Multitouch.Service.Console.exe。
运行Multitouch.Configuration.WPF.exe,打开之后,在窗口左侧Available devices栏里选择Tuio,然后单击右侧的蓝色>箭头,然后点击Restart service按钮,现在可以关闭Multitouch.Service.Console.exe窗口了。
在使用的时候,假设现在的设备均已调试完毕,在CCV主界面右侧Communication栏里选择TUIO UDP选项。
回到MultiTouch Vista文件夹,找到并打开Multitouch.Service.Console.exe,再找到并打开Multitouch.Driver.Console.exe。如果你不想每次都打开Multitouch.Service.Console.exe,可以将Multitouch.Service.exe安装为系统服务。安装系统服务与安装普通 应用程序不一样,直接双击文件不管用,具体安装方法,可以自行上网搜索相关内容。
如果一切正常,那么现在,你就可以用自己做的设备来玩转Windows 7了!
编译指南
MultiTouch Vista是一套开源的输入管理框架,所以你可以很容易的从项目网站获取源代码,项目主页http://multitouchvista.codeplex.com 。
MultiTouch Vista使用了C#语言和.NET Framework 3.5,所以在编译的时候,首先确保机器上装有最低版本为.NET Framework 3.5 SP1的.NET框架。此外,如果想要编译MultiTouch.Framework.sln,则机器上必须装有Windows SDK。开发环境最低为Visual Studio 2008。
笔者的开发环境是Windows 7 Ultimate 64bit,Microsoft Visual Studio 2010 Ultimate,.NET Framework 4.0.30319,Windows SDK v7.1。注意,在使用Visual Studio 2010编译的时候,Visual Studio会对项目进行转换,以便让Visual Studio 2010打开项目进行开发,但是转换以后,就不能再用比Visual Studio 2010低的版本打开了,换句话说,虽然MultiTouch Vista的开发者使用Visual Studio 2008进行开发,但是当转换之后,Visual Studio 2008便无法打开项目了。
下载源代码之后,在Main Source文件夹里,你会看到五个解决方案:
1. Multitouch.InputProviders.sln
2. Multitouch.Service.sln
3. Multitouch.Configuration.sln
4. Multitouch.Framework.sln
5. Multitouch.Driver.sln
MultiTouch Vista使用了很多第三方类库和框架,这些类库和框架在MultiTouch Vista中起到了至关重要的作用,具体的类库和框架列表可以登陆MultiTouch Vista官网查询。
下面需要点出两个来自微软的框架。
第一个是Prism(http://compositewpf.codeplex.com),Prism是微软Patterns & Practices团队的项目,它是一套针对开发组合的WPF应用程序的框架。Prism试图解决在基于WPF构建企业级应用程序中的挑战,当应用的复杂度的增加、团队数量逐渐庞大时,应用程序也变得很难维护。使用Prism可以让WPF开发更趋于模块化,整个项目将由多个离散的、松耦合的模块组成,而各个模块又可以又不同的开发者或团队进行开发、测试和部署。Prism采用了Unity来支持依赖注入,以实现更好的模块化应用程序开发。这里(http://msdn.microsoft.com/zh-cn/magazine/cc785479.aspx)有一篇来自MSDN的文章,可以阅读一下。需要点出的是,MultiTouch Vista中的Prism不是最新版本。
另一个框架就是Managed Extensibility Framework (http://mef.codeplex.com)。通常,由于应用需求的变化频繁,导致软件可扩展性越来越差,很难加入新的功能。所以微软推出了MEF(托管可扩展框架),就是为了简化可扩展应用程序和组件的设计这个问题。但是需要说明一点,MultiTouch Vista使用的MEF并不是最新版本,如果使用最新版本的MEF将导致报错。