專利名稱:同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)輸入技術(shù),具體是一種同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法。
背景技術(shù):
在現(xiàn)有技術(shù)中,物理遙控器在邏輯上和物理鍵盤完全相同,同時使用物理遙控器和鼠標(biāo)鍵盤操作時,物理遙控器會和現(xiàn)有的物理鍵盤相互干擾,即如果和物理遙控器配合工作的程序(以下簡稱遙控器配合程序)失去輸入焦點,就不能響應(yīng)物理遙控器的操作;而且,物理遙控器將對失去焦點的遙控器配合程序的操作用在當(dāng)前獲得焦點的應(yīng)用程序上,其操作就會出現(xiàn)不可預(yù)料的后果。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法。
為了實現(xiàn)上述目的,本發(fā)明技術(shù)方案是由鍵盤驅(qū)動程序分別接收物理遙控器或物理鍵盤的信號,然后分離物理遙控器或物理鍵盤觸發(fā)的鍵盤消息,不論遙控器配合程序被激活與否,鍵盤鉤子函數(shù)均將物理遙控器的鍵盤消息傳遞至遙控器配合程序,(用以避免輸入焦點的變化對物理遙控器操作遙控器配合程序的干擾,及物理遙控器對獲得焦點的應(yīng)用程序的干擾);同時鍵盤鉤子函數(shù)將物理鍵盤的鍵盤消息傳遞至獲得焦點的應(yīng)用程序,實現(xiàn)物理遙控器和物理鍵盤及鼠標(biāo)的同時操作;所述遙控器和鍵盤輸入信息的分離方法有如下兩種1)所述物理遙控器和物理鍵盤輸入信息的分離方法是在鍵盤驅(qū)動程序上掛接過濾驅(qū)動程序,并且在獲得焦點的應(yīng)用程序下面掛接鍵盤鉤子函數(shù),過濾驅(qū)動程序根據(jù)信號是來源于物理遙控器還是物理鍵盤,對其鍵盤消息中的dwExtraInfo變量賦予不同的值;由鍵盤鉤子函數(shù)通過查看dwExtraInfo變量的值,分辯出鍵盤消息是由物理遙控器還是物理鍵盤觸發(fā),用以實現(xiàn)物理遙控器和物理鍵盤所觸發(fā)的鍵盤消息的分離;
2)所述物理遙控器和物理鍵盤輸入信息的分離方法是在獲得焦點的應(yīng)用程序下面掛接鍵盤鉤子函數(shù),鍵盤鉤子函數(shù)攔截鍵盤驅(qū)動程序的信息;同時加設(shè)鍵盤管理程序,接收來自于鍵盤驅(qū)動程序的原始輸入消息,傳遞給鍵盤鉤子函數(shù);在鍵盤鉤子函數(shù)中對攔截和收到的兩路信息進(jìn)行判斷,分辯出鍵盤消息是由物理遙控器還是物理鍵盤觸發(fā),用以實現(xiàn)物理遙控器和物理鍵盤所觸發(fā)的鍵盤消息的分離。
本發(fā)明具有如下優(yōu)點1.由于本發(fā)明采用遙控器和鍵盤輸入信息的分離技術(shù),遙控器配合程序在任何情況下都能響應(yīng)物理遙控器的操作,保證了遙控器配合程序的穩(wěn)定性。
2.本發(fā)明物理遙控器和物理鍵盤可以同時工作,不會相互干擾。
3.本發(fā)明成本低,方法簡單,操作方便。
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明。
圖1是現(xiàn)有技術(shù)中的遙控器和普通鍵盤輸入的示意圖。
圖2是圖1的程序流程圖。
圖3是本發(fā)明一個實施例通過過濾驅(qū)動程序來實現(xiàn)對遙控器和鍵盤輸入信息的分離的邏輯結(jié)構(gòu)示意圖。
圖4是圖3的程序流程圖。
圖5是本發(fā)明另一個實施例通過獲取原始輸入信息來實現(xiàn)對遙控器和鍵盤輸入信息的分離的邏輯結(jié)構(gòu)示意圖。
圖6是圖5的程序流程圖。
圖中1為物理遙控器,2為物理鍵盤,3為鍵盤驅(qū)動程序,4為獲得焦點的應(yīng)用程序,5為鍵盤上層過濾驅(qū)動程序,6為dwExtraInfo變量,7為鍵盤鉤子函數(shù),8為遙控器配合程序,9為原始輸入信息,10為鍵盤管理程序。
具體實施例方式
實施例1現(xiàn)以微軟視窗系列操作系統(tǒng)為例進(jìn)行說明,但本發(fā)明并不僅限于微軟視窗系列操作系統(tǒng)。
如圖1、2所示,在現(xiàn)有技術(shù)中,物理遙控器1在外觀上為遙控器,但其邏輯上是無線鍵盤,在邏輯上和物理鍵盤2一樣,物理遙控器1和物理鍵盤2上的按鍵被操作均會產(chǎn)生相關(guān)的信號,經(jīng)過處理以后轉(zhuǎn)化為數(shù)字信息傳送到鍵盤驅(qū)動程序3,在通常情況下,鍵盤驅(qū)動程序3會根據(jù)傳輸來的信號直接輸出相關(guān)的鍵盤消息到獲得焦點的應(yīng)用程序4,由于僅有獲得焦點的應(yīng)用程序4能得到鍵盤消息,但是根據(jù)鍵盤驅(qū)動程序3發(fā)出的鍵盤消息并不能判斷消息來源于物理遙控器1還是物理鍵盤2。所以,即使系統(tǒng)連接有一個物理遙控器1和物理鍵盤2,視窗系統(tǒng)也不能在物理遙控器1操作遙控器配合程序8同時采用鼠標(biāo)和物理鍵盤2正常操作其他的應(yīng)用程序。由此也看出,要想達(dá)到使物理遙控器1和遙控器配合程序8正常工作的同時還要用鼠標(biāo)和物理鍵盤2操作其他的程序的目的,就必須分離物理遙控器1和物理鍵盤2所觸發(fā)的鍵盤消息。
本發(fā)明同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法由鍵盤驅(qū)動程序3分別接收物理遙控器1或物理鍵盤2的信號,然后分離物理遙控器1或物理鍵盤2觸發(fā)的鍵盤消息,不論遙控器配合程序8被激活與否,鍵盤鉤子函數(shù)7均將物理遙控器1的鍵盤消息傳遞至遙控器配合程序8,用以避免輸入焦點的變化對物理遙控器1操作遙控器配合程序8的干擾,及物理遙控器1對獲得焦點的應(yīng)用程序4的干擾;同時鍵盤鉤子函數(shù)7將物理鍵盤2的鍵盤消息傳遞至獲得焦點的應(yīng)用程序4,實現(xiàn)物理遙控器1和物理鍵盤2及鼠標(biāo)的同時操作。
如圖3所示,遙控器和鍵盤輸入信息的分離方法(通過過濾驅(qū)動程序來實現(xiàn)對遙控器和鍵盤輸入信息的分離)在能夠接收物理遙控器1或物理鍵盤2信號的鍵盤驅(qū)動程序3上掛接過濾驅(qū)動程序5,并且在獲得焦點的應(yīng)用程序4下面掛接鍵盤鉤子函數(shù)7,鍵盤鉤子函數(shù)7與遙控器配合程序8配合;過濾驅(qū)動程序5根據(jù)信號是來源于物理遙控器1還是物理鍵盤2,對鍵盤消息中的dwExtraInfo變量6賦予不同的值;由鍵盤鉤子函數(shù)7在查詢鍵盤消息的dwExtraInfo變量6后分辯出鍵盤消息是由物理遙控器還是物理鍵盤觸發(fā),決定將鍵盤消息傳遞給獲得焦點的應(yīng)用程序4或遙控器配合程序8。
原理本發(fā)明在鍵盤驅(qū)動程序3上掛接了過濾驅(qū)動程序5,并且在獲得焦點的應(yīng)用程序4下面掛接了鍵盤鉤子函數(shù)7。在過濾驅(qū)動程序5中能夠識別信號是來源于物理遙控器1還是物理鍵盤2,因此過濾驅(qū)動程序5在轉(zhuǎn)發(fā)鍵盤信息時將物理遙控器1和物理鍵盤2的所觸發(fā)的鍵盤消息中的dwExtraInfo變量6賦予不同的值。在任何一個獲得焦點的應(yīng)用程序4接受到鍵盤消息之前,鍵盤鉤子函數(shù)7將截獲到這些消息并對他們進(jìn)行處理。由于過濾驅(qū)動程序5的預(yù)處理,鍵盤鉤子函數(shù)7只需要查詢鍵盤消息的dwExtraInfo變量6就可以知道消息來源于物理遙控器1還是物理鍵盤2。如果鍵盤消息來源于物理鍵盤2,鍵盤鉤子函數(shù)7將會照原樣將鍵盤消息傳遞給獲得焦點的應(yīng)用程序4;不論所述遙控器配合程序8是否是獲得焦點的應(yīng)用程序4,只要鍵盤消息來源于物理遙控器1,鍵盤鉤子函數(shù)7會將鍵盤消息直接傳遞給遙控器配合程序8。由此可以看出,遙控器配合程序8在任何時候都能正常響應(yīng)物理遙控器1的操作;與此同時,用戶在正常操作其他的應(yīng)用程序時,獲得焦點的應(yīng)用程序4也不會受到由物理遙控器1所觸發(fā)的鍵盤消息的干擾。
如圖4所示,具體流程為來自物理遙控器1或物理鍵盤2的鍵盤消息經(jīng)鍵盤驅(qū)動程序3發(fā)至過濾驅(qū)動程序5進(jìn)行預(yù)處理;過濾驅(qū)動程序5判斷鍵盤消息是來自于物理遙控器1還是物理鍵盤2,如是來自于物理遙控器1鍵盤消息,則將dwExtraInfo變量6設(shè)置為物理遙控器1的編號,否則將dwExtraInfo變量6設(shè)置為物理鍵盤2的編號;然后鍵盤鉤子函數(shù)7獲得控制權(quán),鍵盤鉤子函數(shù)7根據(jù)dwExtraInfo變量6所設(shè)置的編號,決定把消息發(fā)送給獲得焦點的應(yīng)用程序4或遙控器配合程序8。
其中鍵盤驅(qū)動程序3、鍵盤鉤子函數(shù)7為現(xiàn)有技術(shù);所述鍵盤管理程序10流程為調(diào)用原始輸入函數(shù)(本實施例為Windows XP函數(shù)),取得原始輸入信息,傳遞給鍵盤鉤子函數(shù)7。
所述遙控器配合程序8為任意一個可以響應(yīng)鍵盤輸入的程序,本實施例可以為媒體播放器,不論媒體播放器是否是獲得焦點的應(yīng)用程序4,只要鍵盤消息來源于物理遙控器1,鍵盤鉤子函數(shù)7會將鍵盤消息直接傳遞給媒體播放器。物理遙控器1對媒體播放器的操作不會干擾另一個獲得焦點的應(yīng)用程序4。
實施例2與實施例1不同之處在于遙控器和鍵盤輸入信息的分離方法是通過獲取原始輸入信息來實現(xiàn)的。
在圖5中,本實施例在獲得焦點的應(yīng)用程序4下面掛接鍵盤鉤子函數(shù)7,鍵盤鉤子函數(shù)7攔截能夠接收物理遙控器1或物理鍵盤2信號的鍵盤驅(qū)動程序3的信息;同時加設(shè)鍵盤管理程序10,接收來自于鍵盤驅(qū)動程序3的原始輸入消息9,傳遞給鍵盤鉤子函數(shù)7;在鍵盤鉤子函數(shù)7中對攔截和收到的兩路信息進(jìn)行判斷,將截獲的鍵盤消息傳遞至獲得焦點的應(yīng)用程序4或遙控器配合程序8。
原理本發(fā)明鍵盤管理程序10能夠通過Windows XP提供的原始輸入(Raw Input)函數(shù)接收到原始輸入消息9,由于原始輸入消息9包含有消息的來源設(shè)備(物理遙控器1和物理鍵盤2)的信息,所以鍵盤管理程序10可以將此識別信息發(fā)送到鍵盤鉤子函數(shù)7;鍵盤鉤子函數(shù)7根據(jù)鍵盤管理程序10發(fā)來的識別信息和驅(qū)動程序發(fā)來的鍵盤信息對照,判斷鍵盤消息是否來源于物理鍵盤2,如果是,則按照原樣將鍵盤消息傳遞給獲得焦點的應(yīng)用程序4;如果鍵盤消息來源于物理遙控器1,鍵盤鉤子函數(shù)7將鍵盤消息直接傳遞給遙控器配合程序8(而不管遙控器配合程序8是否是獲得焦點的應(yīng)用程序)。由此可以看出,遙控器配合程序8在任何時候都能正常響應(yīng)物理遙控器1的操作;與此同時,用戶在正常操作其他的應(yīng)用程序時,獲得焦點的應(yīng)用程序4也不會受到由物理遙控器1)觸發(fā)的鍵盤消息的干擾。
如圖6所示,具體流程為來自物理遙控器1或物理鍵盤2的鍵盤消息經(jīng)鍵盤驅(qū)動程序3被鍵盤鉤子函數(shù)7攔截;同時鍵盤管理程序接收來自于鍵盤驅(qū)動程序3的原始輸入消息9,傳遞給鍵盤鉤子函數(shù)7;在鍵盤鉤子函數(shù)7中收到的根據(jù)原始輸入消息9對攔截信息進(jìn)行判斷,分辯出鍵盤消息是由物理遙控器還是物理鍵盤觸發(fā),將截獲的來自于物理鍵盤2的鍵盤消息傳遞至獲得焦點的應(yīng)用程序4,將截獲的來自于物理遙控器1的鍵盤消息傳遞至遙控器配合程序8。
采用本發(fā)明,系統(tǒng)連接有一個物理遙控器1和物理鍵盤2,視窗系統(tǒng)能在物理遙控器1操作遙控器配合程序8同時采用鼠標(biāo)和物理鍵盤2正常操作其他的應(yīng)用程序。
權(quán)利要求
1.一種同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法,其特征在于由鍵盤驅(qū)動程序分別接收物理遙控器或物理鍵盤的信號,然后分離物理遙控器或物理鍵盤觸發(fā)的鍵盤消息,不論遙控器配合程序被激活與否,鍵盤鉤子函數(shù)均將物理遙控器的鍵盤消息傳遞至遙控器配合程序,同時鍵盤鉤子函數(shù)將物理鍵盤的鍵盤消息傳遞至獲得焦點的應(yīng)用程序,實現(xiàn)物理遙控器和物理鍵盤及鼠標(biāo)的同時操作。
2.按照權(quán)利要求1所述同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法,其特征在于所述物理遙控器和物理鍵盤輸入信息的分離方法是在鍵盤驅(qū)動程序上掛接過濾驅(qū)動程序,并且在獲得焦點的應(yīng)用程序下面掛接鍵盤鉤子函數(shù),過濾驅(qū)動程序根據(jù)信號是來源于物理遙控器還是物理鍵盤,對其鍵盤消息中的dwExtraInfo變量賦予不同的值;由鍵盤鉤子函數(shù)通過查看dwExtraInfo變量的值,分辯出鍵盤消息是由物理遙控器還是物理鍵盤觸發(fā),用以實現(xiàn)物理遙控器和物理鍵盤所觸發(fā)的鍵盤消息的分離。
3.按照權(quán)利要求1所述同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法,其特征在于所述物理遙控器和物理鍵盤輸入信息的分離方法是在獲得焦點的應(yīng)用程序下面掛接鍵盤鉤子函數(shù),鍵盤鉤子函數(shù)攔截鍵盤驅(qū)動程序的信息;同時加設(shè)鍵盤管理程序,接收來自于鍵盤驅(qū)動程序的原始輸入消息,傳遞給鍵盤鉤子函數(shù);在鍵盤鉤子函數(shù)中對攔截和收到的兩路信息進(jìn)行判斷,分辯出鍵盤消息是由物理遙控器還是物理鍵盤觸發(fā),用以實現(xiàn)物理遙控器和物理鍵盤所觸發(fā)的鍵盤消息的分離。
全文摘要
本發(fā)明涉及計算機(jī)輸入技術(shù),具體公開一種同時操作遙控器和鼠標(biāo)鍵盤而不相互干擾的方法。它由鍵盤驅(qū)動程序分別接收物理遙控器或物理鍵盤的信號,然后分離物理遙控器或物理鍵盤觸發(fā)的鍵盤消息,不論遙控器配合程序被激活與否,鍵盤鉤子函數(shù)均將物理遙控器的鍵盤消息傳遞至遙控器配合程序,同時鍵盤鉤子函數(shù)將物理鍵盤的鍵盤消息傳遞至獲得焦點的應(yīng)用程序,實現(xiàn)物理遙控器和物理鍵盤及鼠標(biāo)的同時操作。采用本發(fā)明遙控器配合程序在任何情況下都能響應(yīng)物理遙控器的操作,保證了遙控器配合程序的穩(wěn)定性,并且可以使物理遙控器和物理鍵盤同時工作,不會相互干擾。
文檔編號G06F13/10GK1896978SQ20051004686
公開日2007年1月17日 申請日期2005年7月13日 優(yōu)先權(quán)日2005年7月13日
發(fā)明者田園 申請人:田園