專利名稱:一種使視窗類操作系統(tǒng)擁有多個(gè)鼠標(biāo)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種拓展以視窗為基礎(chǔ)的操作系統(tǒng)的方法。
以視窗為基礎(chǔ)的操作系統(tǒng)指Microsoft Windows系列操作系統(tǒng)、Apple Mac OS系列操作系統(tǒng)、Linux、Unix上運(yùn)行的X Windows系列操作系統(tǒng)等以視窗作為人機(jī)交互基礎(chǔ)的、運(yùn)行于各種硬件平臺(tái)上的圖形操作系統(tǒng),以下將其簡(jiǎn)稱為視窗系統(tǒng)。
背景技術(shù):
現(xiàn)存的視窗系統(tǒng)的一份拷貝,在完成初始化、正常運(yùn)行時(shí),同一個(gè)桌面(包括虛擬桌面)上,同一時(shí)刻最多只能擁有一個(gè)鼠標(biāo)指針。
現(xiàn)存的視窗系統(tǒng)中,即使有一個(gè)以上的鼠標(biāo)接入到系統(tǒng)中,但是視窗系統(tǒng)中只有一個(gè)鼠標(biāo)指針,接入的鼠標(biāo)以增量的方式同時(shí)影響鼠標(biāo)指針的移動(dòng),所以如果只要有一個(gè)以上連接到系統(tǒng)正常工作的鼠標(biāo)一起被用戶移動(dòng),鼠標(biāo)指針就會(huì)按照這些被移動(dòng)的鼠標(biāo)移動(dòng)的增量和來(lái)移動(dòng)。并不能根據(jù)鼠標(biāo)的數(shù)量出現(xiàn)相應(yīng)數(shù)量的鼠標(biāo)指針。
現(xiàn)存視窗系統(tǒng)的上述兩個(gè)特性表明即使視窗系統(tǒng)運(yùn)行的硬件平臺(tái)連接有一個(gè)以上鼠標(biāo),同一時(shí)刻也只能操作不超過(guò)一個(gè)通過(guò)正常渠道獲取人機(jī)交互設(shè)備輸入信息的程序(以下簡(jiǎn)稱普通程序);而不能分別利用不同的鼠標(biāo),在同一時(shí)刻分別操作一個(gè)以上的普通程序。
隨著USB的廣泛應(yīng)用,同一臺(tái)計(jì)算機(jī)擁有一個(gè)以上的鼠標(biāo)、鍵盤(pán)變得很常見(jiàn),現(xiàn)存視窗系統(tǒng)只能同時(shí)操作一個(gè)普通程序的局限性更加突出地體現(xiàn)出來(lái)。
發(fā)明內(nèi)容
為了克服現(xiàn)存視窗系統(tǒng)的局限性,本發(fā)明提供一種方法,可以拓展現(xiàn)存的視窗系統(tǒng),使之可以在完成初始化、正常運(yùn)行時(shí),同一個(gè)桌面(包括虛擬桌面)上,同一時(shí)刻可以擁有一個(gè)以上互不干擾,獨(dú)立工作的鼠標(biāo)光標(biāo)。
這種方法使得視窗系統(tǒng)的用戶可以用一個(gè)以上的鼠標(biāo)在同一時(shí)刻互不干擾地分別操作一個(gè)以上的普通程序。例如使用兩個(gè)鼠標(biāo)分別在兩個(gè)畫(huà)圖程序里互不干擾地畫(huà)圖。
本發(fā)明的解決方案為(以下簡(jiǎn)稱為多鼠標(biāo)方案)1.將所有連接至窗口系統(tǒng)所運(yùn)行的硬件平臺(tái)的鼠標(biāo)分組,每組至少包括一個(gè)鼠標(biāo);2.每組鼠標(biāo)擁有一個(gè)鼠標(biāo)光標(biāo);3.每組鼠標(biāo)中的單個(gè)鼠標(biāo)以增量的方式影響本組鼠標(biāo)光標(biāo)的移動(dòng);本發(fā)明的有益效果是視窗系統(tǒng)的用戶可以用一個(gè)以上的鼠標(biāo)在同一時(shí)刻互不干擾地分別操作一個(gè)以上的普通程序。從而增加了用戶操作的靈活性。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。
附圖和實(shí)施例中都以微軟視窗系列操作系統(tǒng)為例進(jìn)行說(shuō)明,但本發(fā)明并不僅限于微軟視窗系列操作系統(tǒng)。
圖1是通常情況下鼠標(biāo)輸入的示意2是一個(gè)實(shí)施例的示意圖,本例通過(guò)過(guò)濾驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)對(duì)每組鼠標(biāo)輸入信息的分離圖3是另一個(gè)實(shí)施例的示意圖,本例通過(guò)獲取原始輸入信息來(lái)實(shí)現(xiàn)對(duì)每組鼠標(biāo)輸入信息的分離圖4一個(gè)實(shí)施例的流程中1.物理鼠標(biāo),2.鼠標(biāo)驅(qū)動(dòng)程序,3.普通應(yīng)用程序,4.鼠標(biāo)上層過(guò)濾驅(qū)動(dòng)程序,5.鼠標(biāo)的編號(hào),6.低級(jí)鼠標(biāo)鉤子函數(shù),7.原始輸入信息,8.鼠標(biāo)管理程序在圖1中,兩個(gè)物理鼠標(biāo)(1)被移動(dòng)或按鍵就會(huì)產(chǎn)生相關(guān)的信號(hào),經(jīng)過(guò)處理以后轉(zhuǎn)化為數(shù)字信息傳送到鼠標(biāo)驅(qū)動(dòng)程序(2),在通常情況下,鼠標(biāo)驅(qū)動(dòng)程序(2)會(huì)根據(jù)傳輸來(lái)的信號(hào)直接輸出相關(guān)的鼠標(biāo)消息到普通的應(yīng)用程序(3),由于僅根據(jù)鼠標(biāo)驅(qū)動(dòng)程序發(fā)出的鼠標(biāo)消息并不能判斷消息來(lái)源于某一個(gè)具體的物理鼠標(biāo),所以,在通常情況下,即使系統(tǒng)連接有一個(gè)以上正常工作的鼠標(biāo),視窗系統(tǒng)也只能擁有一個(gè)鼠標(biāo)光標(biāo)。
在圖2中,在驅(qū)動(dòng)程序(2)上掛接了過(guò)濾驅(qū)動(dòng)程序(4),并且在普通應(yīng)用程序(3)下面掛接了低級(jí)鼠標(biāo)鉤子函數(shù)(6)。由于在過(guò)濾驅(qū)動(dòng)程序中(4)能夠識(shí)別信號(hào)來(lái)源于哪一個(gè)具體的物理鼠標(biāo)(1),因此在轉(zhuǎn)發(fā)鼠標(biāo)信息時(shí)將物理鼠標(biāo)的編號(hào)值賦給了鼠標(biāo)消息的dwExtraInfo變量(5)。在任何一個(gè)普通應(yīng)用程序(3)接受到鼠標(biāo)消息之前,低級(jí)鼠標(biāo)鉤子函數(shù)(6)將截獲到這些消息并對(duì)他們進(jìn)行處理,由于過(guò)濾驅(qū)動(dòng)程序(4)的預(yù)處理,低級(jí)鼠標(biāo)鉤子函數(shù)(6)只需要查詢鼠標(biāo)消息的dwExtraInfo變量(5)就可以知道消息來(lái)源與哪一個(gè)具體的物理鼠標(biāo),于是可以按照多鼠標(biāo)方案(見(jiàn)上文)來(lái)顯示鼠標(biāo)光標(biāo)和轉(zhuǎn)發(fā)鼠標(biāo)消息到相應(yīng)的普通應(yīng)用程序(3)。在圖3中,鼠標(biāo)管理程序(8)能夠通過(guò)Windows XP提供的原始輸入(Raw Input)函數(shù)接收到原始輸入消息(7),由于原始輸入消息(7)包含有消息的來(lái)源設(shè)備——物理鼠標(biāo)(1)的信息,所以鼠標(biāo)管理程序(8)可以根據(jù)多鼠標(biāo)方案(見(jiàn)上文)來(lái)顯示鼠標(biāo)光標(biāo)和通過(guò)發(fā)送模擬鼠標(biāo)消息到相應(yīng)的普通應(yīng)用程序(3)。與此同時(shí),低級(jí)鼠標(biāo)鉤子函數(shù)(6)則將所有不是通過(guò)鼠標(biāo)管理程序(8)生成的鼠標(biāo)消息過(guò)濾掉,以避免鼠標(biāo)消息的重復(fù)。因此在Windowx XP系統(tǒng)下,不在鼠標(biāo)驅(qū)動(dòng)程序(2)上掛接過(guò)濾驅(qū)動(dòng)程序,也能實(shí)現(xiàn)多鼠標(biāo)方案。
具體實(shí)施例方式
由于現(xiàn)存視窗系統(tǒng)都是利用消息來(lái)傳遞信息的,如圖1,當(dāng)某一個(gè)具體的物理鼠標(biāo)(1)被用戶互操作時(shí),普通應(yīng)用程序(3)能、且只能根據(jù)鼠標(biāo)消息來(lái)了解到用戶執(zhí)行的操作。然而,僅根據(jù)鼠標(biāo)驅(qū)動(dòng)程序發(fā)出的鼠標(biāo)消息并不能判斷消息來(lái)源于某一個(gè)具體的物理鼠標(biāo),所以,在通常情況下,即使系統(tǒng)連接有一個(gè)以上正常工作的鼠標(biāo),視窗系統(tǒng)也只能擁有一個(gè)鼠標(biāo)光標(biāo)。
具體的實(shí)施方式分為兩種情況1、掛接鼠標(biāo)過(guò)濾驅(qū)動(dòng)程序;2、使用原始輸入函數(shù)。
通過(guò)掛接鼠標(biāo)過(guò)濾驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)多鼠標(biāo)方案(見(jiàn)上文)適用于所有的視窗系統(tǒng),但是由于涉及驅(qū)動(dòng)程序的開(kāi)發(fā),難度相對(duì)較大。使用原始輸入函數(shù)來(lái)實(shí)現(xiàn)的方法雖然開(kāi)發(fā)難度相對(duì)較小,但是僅適用于微軟公司的視窗XP(Windows XP)以上的版本,有一定的局限性。
通過(guò)掛接鼠標(biāo)過(guò)濾驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)的方法如下如圖2,通過(guò)驅(qū)動(dòng)程序(2)上掛接了過(guò)濾驅(qū)動(dòng)程序(4)實(shí)現(xiàn)了多個(gè)物理鼠標(biāo)消息的分離,并且在普通應(yīng)用程序(3)下面掛接了低級(jí)鼠標(biāo)鉤子函數(shù)(6)實(shí)現(xiàn)了在普通應(yīng)用程序接收到鼠標(biāo)消息以前對(duì)來(lái)自不同物理鼠標(biāo)的消息根據(jù)多鼠標(biāo)方案(見(jiàn)上文)進(jìn)行處理。
通過(guò)使用原始輸入函數(shù)來(lái)實(shí)現(xiàn)的方法如下如圖3,通過(guò)鼠標(biāo)管理程序(8)使用原始輸入函數(shù)實(shí)現(xiàn)了多個(gè)物理鼠標(biāo)消息的分離和根據(jù)多鼠標(biāo)方案(見(jiàn)上文)進(jìn)行處理。并且在普通應(yīng)用程序(3)下面掛接了低級(jí)鼠標(biāo)鉤子函數(shù)(6)實(shí)現(xiàn)了對(duì)重復(fù)消息的過(guò)濾。
權(quán)利要求
1.一種使視窗類操作系統(tǒng)擁有一個(gè)以上互不干擾,獨(dú)立工作鼠標(biāo)的方法,其特征是,通過(guò)對(duì)鼠標(biāo)消息的來(lái)源進(jìn)行分辨,并以此為依據(jù)對(duì)該鼠標(biāo)消息進(jìn)行過(guò)濾、篡改、轉(zhuǎn)發(fā)等操作來(lái)達(dá)到擁有一個(gè)以上互不干擾,獨(dú)立工作鼠標(biāo)光標(biāo)的目的。
2.一種使視窗類操作系統(tǒng)擁有一個(gè)以上鼠標(biāo)的方法,其特征是,通過(guò)對(duì)物理鼠標(biāo)設(shè)備分組來(lái)實(shí)現(xiàn)對(duì)一個(gè)以上鼠標(biāo)的互不干擾的控制;一個(gè)分組的物理鼠標(biāo)設(shè)備只能擁有(操作)最多一個(gè)鼠標(biāo)光標(biāo);一個(gè)桌面(包括虛擬桌面)上只能擁有不超過(guò)物理鼠標(biāo)設(shè)備分組數(shù)量的鼠標(biāo)光標(biāo)。
全文摘要
一種使視窗類操作系統(tǒng)擁有一個(gè)以上互不干擾,獨(dú)立工作的鼠標(biāo)的方法。本發(fā)明是一種拓展以視窗為基礎(chǔ)的操作系統(tǒng)的功能的方法。本方法解決了在完成初始化、正常運(yùn)行時(shí),同一個(gè)桌面(包括虛擬桌面)上,同一時(shí)刻不能擁有一個(gè)以上互不干擾,獨(dú)立工作的鼠標(biāo)光標(biāo)的問(wèn)題。解決問(wèn)題的主要途徑為對(duì)鼠標(biāo)消息的來(lái)源進(jìn)行分辨,并以此為依據(jù)對(duì)該鼠標(biāo)消息進(jìn)行過(guò)濾、篡改、轉(zhuǎn)發(fā)等操作。這種方法使得視窗系統(tǒng)的用戶用一個(gè)以上的鼠標(biāo)在同一時(shí)刻互不干擾地分別操作一個(gè)以上的普通程序成為可能。例如,使用兩個(gè)鼠標(biāo)同時(shí)分別在兩個(gè)畫(huà)圖程序里畫(huà)圖。
文檔編號(hào)G06F9/44GK1848079SQ20051004621
公開(kāi)日2006年10月18日 申請(qǐng)日期2005年4月11日 優(yōu)先權(quán)日2005年4月11日
發(fā)明者田園 申請(qǐng)人:田園