概述
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將導致報錯。