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