專利名稱:一種實現(xiàn)多鍵盤同時輸入的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多鍵盤輸入技術(shù)領(lǐng)域,特別是涉及一種實現(xiàn)多鍵盤同時輸入的方法和一種實現(xiàn)多鍵盤同時輸入的系統(tǒng)。
背景技術(shù):
在現(xiàn)有的操作系統(tǒng)上,傳統(tǒng)的鍵盤消息的處理過程是鍵盤輸出掃描碼到鍵盤驅(qū)動,驅(qū)動將掃描碼封裝為原始消息,然后發(fā)送到系統(tǒng)消息隊列,系統(tǒng)將消息分發(fā)給獲取了焦點的應(yīng)用程序的窗口 ;而一個系統(tǒng)中,擁有焦點的窗口只能有一個,也即是只能對擁有焦點的窗口發(fā)送字符,所以當一臺電腦上擁有多個鍵盤,并且希望每個鍵盤獨自輸入信息到不同的應(yīng)用程序窗口時,當前操作系統(tǒng)的消息處理方式無法完成這個任務(wù)
發(fā)明內(nèi)容
基于此,本發(fā)明提供一種實現(xiàn)多鍵盤同時輸入的方法,該方法通過建立鍵盤及對應(yīng)的應(yīng)用程序窗口的映射關(guān)系,每個鍵盤輸入的字符通過查找映射關(guān)系即可發(fā)送至對應(yīng)的應(yīng)用程序窗口,實現(xiàn)了多個鍵盤同時向不同的應(yīng)用程序窗口發(fā)送字符。本發(fā)明的另一目的在于提供實現(xiàn)上述方法的系統(tǒng)。一種實現(xiàn)多鍵盤同時輸入的方法,包括如下步驟建立接入的鍵盤與應(yīng)用程序窗口的映射關(guān)系;根據(jù)所述映射關(guān)系,將所述鍵盤輸入的字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗口。—種實現(xiàn)多鍵盤同時輸入的系統(tǒng),包括建立模塊和發(fā)送模塊;所述建立模塊用于建立接入的鍵盤與應(yīng)用程序窗口的映射關(guān)系;所述發(fā)送模塊用于根據(jù)所述建立模塊中的所述映射關(guān)系,將所述鍵盤輸入的字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗口。本發(fā)明通過建立鍵盤與對應(yīng)的應(yīng)用程序窗口之間的映射關(guān)系,鍵盤輸入的字符只需根據(jù)所述映射關(guān)系,即可將字符發(fā)送至對應(yīng)的應(yīng)用程序窗口,實現(xiàn)了多個鍵盤同時向不同應(yīng)用程序窗口發(fā)送字符;本發(fā)明的原理設(shè)計巧妙,實現(xiàn)方式簡單,在現(xiàn)有的計算機操作系統(tǒng)上都可以利用本發(fā)明的技術(shù)方案很容易地實現(xiàn);本發(fā)明可廣泛應(yīng)用于大型拼接墻領(lǐng)域,在拼接墻的控制器上接入多個鍵盤,即可在同一拼接墻上實現(xiàn)多人獨立同時操作,大大提高了工作效率,實用性非常高,值得推廣。
圖I為本發(fā)明實現(xiàn)多鍵盤同時輸入的方法在一實施例中的流程示意圖。圖2為本發(fā)明實現(xiàn)多鍵盤同時輸入的方法在一實施例中建立映射關(guān)系步驟的流程不意圖。圖3為本發(fā)明實現(xiàn)多鍵盤同時輸入的方法在一實施例中發(fā)送字符步驟的流程示意圖。圖4為本發(fā)明實現(xiàn)多鍵盤同時輸入的系統(tǒng)在一實施例中的結(jié)構(gòu)示意圖。圖5為本發(fā)明實現(xiàn)多鍵盤同時輸入的系統(tǒng)在一實施例中建立模塊的結(jié)構(gòu)不意圖。圖6為本發(fā)明實現(xiàn)多鍵盤同時輸入的系統(tǒng)在一實施例中發(fā)送模塊的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細說明,但本發(fā)明的實施方式不限于此。
如圖I所示,是本發(fā)明實現(xiàn)多鍵盤同時輸入的方法在一實施例中的流程示意圖,包括如下步驟S11、建立接入的鍵盤與應(yīng)用程序窗口的映射關(guān)系;如圖2所示,在一較佳實施例中,步驟Sll可具體包括如下步驟S200、獲取每一個接入的鍵盤的鍵盤標識符;以現(xiàn)有常用的Windows操作系統(tǒng)為例,該操作系統(tǒng)的系統(tǒng)函數(shù)RawInput函數(shù)用于識別接入的鍵盤信息,本實施例可通過GetRawInputDeviceList函數(shù)調(diào)用RawInput函數(shù),獲取到每一個接入的鍵盤信息,該鍵盤信息包括所述鍵盤標識符或鍵盤名稱等,本實施例 中只需獲取鍵盤標識符即可;其他的操作系統(tǒng)如Linux操作系統(tǒng)等,細節(jié)實現(xiàn)上略微不同,但其實現(xiàn)的思路大致如此,這里不予贅述,以下實施例都將以Windows操作系統(tǒng)為例進行說明;S210、獲取已開啟的應(yīng)用程序窗口的窗口標識符;在一較佳實施例中通過EnumWindows函數(shù)即可實現(xiàn),EnumWindows枚舉函數(shù)用于檢查操作系統(tǒng)中的應(yīng)用程序窗口數(shù)量變化,通過此函數(shù)即可獲取到已開啟的應(yīng)用程序窗口的信息,本實施例中只需獲取到窗口標識符即可;S220、建立所述鍵盤標識符與對應(yīng)的所述窗口標識符之間的映射關(guān)系表;對于本步驟,可通過新建一鏈表,將步驟S200獲取的每個鍵盤的鍵盤標識符保存在此鏈表中,將步驟S210獲取的每個應(yīng)用程序窗口的窗口標識符保存在另一鏈表中;根據(jù)鍵盤和應(yīng)用程序窗口之間的對應(yīng)關(guān)系,可將某一鍵盤標識符與某一窗口標識符關(guān)聯(lián)起來,設(shè)置鍵盤標識符鏈表與窗口標識符鏈表的一一對應(yīng)關(guān)系;也可將鍵盤標識符和窗口標識符都保存在同一關(guān)系鏈表中,在同一鏈表中設(shè)置鍵盤標識符鏈表與窗口標識符鏈表的對應(yīng)關(guān)系;上述鍵盤與應(yīng)用程序窗口之間對應(yīng)關(guān)系的獲取,可有多種實現(xiàn)方式;例如可將步驟S210中GetRawInputDeviceList函數(shù)獲取到的鍵盤信息實時添加到系統(tǒng)的鼠標右鍵列表中,用戶將鼠標光標放置在已開啟的應(yīng)用程序窗口時,點擊鼠標右鍵選擇連接至對應(yīng)的鍵盤,即可自行設(shè)置鍵盤與應(yīng)用程序窗口的對應(yīng)關(guān)系;也可新建一程序窗口,在此窗口中列舉顯示所有鍵盤信息和所有開啟的應(yīng)用程序窗口信息,用戶在此窗口中自行設(shè)置鍵盤與應(yīng)用程序窗口的對應(yīng)關(guān)系;S12、根據(jù)所述映射關(guān)系,將所述鍵盤輸入的字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗
n ;如圖3所示,在一較佳實施例中,步驟S12具體可包括如下步驟
S300、接收每個所述鍵盤輸入的字符;S310、根據(jù)所述輸入字符的鍵盤的鍵盤標識符,查詢所述映射關(guān)系表,將所述字符發(fā)送至所述鍵盤對應(yīng)的所述應(yīng)用程序窗口;操作系統(tǒng)在接收鍵盤輸入的字符時,可先根據(jù)該鍵盤的鍵盤標識符,查找步驟S220中建立的映射關(guān)系表,找到與該鍵盤對應(yīng)的應(yīng)用程序窗口 ;WindowS操作系統(tǒng)對于鍵盤輸入字符的處理流程是將獲取的字符和接收字符的應(yīng)用程序窗口的窗口標識符封裝好發(fā)送到系統(tǒng)消息隊列;因此在本步驟中,查找到該輸入字符對應(yīng)的窗口標識符,即可按照原操作系統(tǒng)的處理流程,將字符發(fā)送到應(yīng)用程序窗口中;到此步驟,該方法已實現(xiàn)了多個鍵盤同時工作同時輸入字符的任務(wù),彌補了現(xiàn)有技術(shù)的缺陷,該方法的設(shè)計思路簡單卻巧妙,每個步驟對于本領(lǐng)域技術(shù)人員都能較容易實現(xiàn); 在一較佳實施例中,本發(fā)明還可包括如下一個或多個步驟識別斷開連接的所述鍵盤的鍵盤標識符,刪除所述映射關(guān)系表中的所述鍵盤標識符及對應(yīng)的窗口標識符;步驟S200中通過RawInput函數(shù)識別鍵盤的接入或斷開,當識別到有鍵盤斷開連接,則可通知映射關(guān)系表及時更新,刪除映射關(guān)系表中記錄的該斷開連接鍵盤的鍵盤標識符,以及該鍵盤標識符對應(yīng)的窗口標識符;識別關(guān)閉的所述應(yīng)用程序窗口的窗口標識符,刪除所述映射關(guān)系表中的所述鍵盤標識符及對應(yīng)的窗口標識符;步驟S210中通過EnumWindows函數(shù)識別系統(tǒng)中應(yīng)用程序窗口的開啟或關(guān)閉,當識別到有應(yīng)用程序窗口被關(guān)閉,則可通知映射關(guān)系表更新,刪除映射關(guān)系表中記錄的該關(guān)閉的程序窗口的窗口標識符,以及該窗口標識符對應(yīng)的鍵盤標識符;解除所述已建立的所述鍵盤及對應(yīng)的應(yīng)用程序窗口的映射關(guān)系,刪除所述映射關(guān)系表中的所述鍵盤標識符及對應(yīng)的窗口標識符;步驟S220中在獲取鍵盤與應(yīng)用程序窗口的對應(yīng)關(guān)系的過程中,檢測用戶在某一應(yīng)用程序窗口中,通過鼠標右鍵選擇與原對應(yīng)的鍵盤斷開連接,則可通知映射關(guān)系表更新,解除所述已建立的所述鍵盤及對應(yīng)的應(yīng)用程序窗口的映射關(guān)系,刪除所述映射關(guān)系表中的所述鍵盤標識符及對應(yīng)的窗口標識符;上述三個步驟的目的都在于實時更新映射關(guān)系表,避免映射關(guān)系表存儲數(shù)據(jù)過多,提高步驟S12中映射關(guān)系表的查詢速度。本發(fā)明還提供一種實現(xiàn)多鍵盤同時輸入的系統(tǒng),如圖4所示,是該系統(tǒng)在一較佳實施例中的結(jié)構(gòu)示意圖,包括建立模塊41和發(fā)送模塊42 ;所述建立模塊41用于建立接入的鍵盤與應(yīng)用程序窗口的映射關(guān)系;如圖5所不,在一較佳實施例中,所述建立模塊41包括鍵盤標識符模塊500、窗口標識符模塊510和映射關(guān)系表模塊520 ;所述鍵盤標識符模塊500用于獲取每一個接入的鍵盤的鍵盤標識符;所述窗口標識符模塊510用于獲取已開啟的應(yīng)用程序窗口的窗口標識符;所述映射關(guān)系表模塊520用于建立所述鍵盤標識符與對應(yīng)的所述窗口標識符之間的映射關(guān)系表;
所述發(fā)送模塊42用于根據(jù)所述建立模塊41中的所述映射關(guān)系,將所述鍵盤輸入的字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗口;如圖6所示,在一較佳實施例中,所述發(fā)送模塊42包括接收模塊600和查詢發(fā)送模塊610 ;所述接收模塊600用于接收每個所述鍵盤輸入的字符;所述查詢發(fā)送模塊610用于根據(jù)所述輸入字符的鍵盤的鍵盤標識符,查詢所述映射關(guān)系表,將所述接收模塊600中接收的所述字符發(fā)送至所述鍵盤對應(yīng)的所述應(yīng)用程序窗 n ;所述實現(xiàn)多鍵盤同時輸入的系統(tǒng),還包括刪除模塊,所述刪除模塊用于識別斷開連接的所述鍵盤的鍵盤標識符,刪除所述映射關(guān)系表模塊中所述映射關(guān)系表中的鍵盤標識符及對應(yīng)的窗口標識符;或/和識別關(guān)閉的所述應(yīng)用程序窗口的窗口標識符,刪除所述映射關(guān)系表模塊中所述映射關(guān)系表中的鍵盤標識符及對應(yīng)的窗口標識符;或/和解除所述已建立的所述鍵盤及對應(yīng)的應(yīng)用程序窗口的映射關(guān)系,刪除所述映射關(guān)系表|吳塊中所述映射關(guān)系表中的鍵盤標識符及對應(yīng)的窗口標識符。本發(fā)明通過建立鍵盤與對應(yīng)的應(yīng)用程序窗口之間的映射關(guān)系,鍵盤輸入的字符只需根據(jù)所述映射關(guān)系,即可將字符發(fā)送至對應(yīng)的應(yīng)用程序窗口,實現(xiàn)了多個鍵盤同時向不同應(yīng)用程序窗口發(fā)送字符;本發(fā)明的原理設(shè)計巧妙,實現(xiàn)方式簡單,在現(xiàn)有的計算機操作系統(tǒng)上都可以利用本發(fā)明的技術(shù)方案很容易地實現(xiàn);本發(fā)明可廣泛應(yīng)用于大型拼接墻領(lǐng)域,在拼接墻的控制器上接入多個鍵盤,即可在同一拼接墻上實現(xiàn)多人獨立同時操作,大大提高了工作效率,實用性非常高,值得推廣。以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。
權(quán)利要求
1.一種實現(xiàn)多鍵盤同時輸入的方法,其特征在于,包括如下步驟 建立接入的鍵盤與應(yīng)用程序窗口的映射關(guān)系; 根據(jù)所述映射關(guān)系,將所述鍵盤輸入的字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗口。
2.根據(jù)權(quán)利要求I所述的實現(xiàn)多鍵盤同時輸入的方法,其特征在于,所述建立鍵盤與應(yīng)用程序窗口的映射關(guān)系的步驟具體包括 獲取每一個接入的鍵盤的鍵盤標識符; 獲取已開啟的應(yīng)用程序窗口的窗口標識符; 建立所述鍵盤標識符與對應(yīng)的所述窗口標識符之間的映射關(guān)系表。
3.根據(jù)權(quán)利要求2所述的實現(xiàn)多鍵盤同時輸入的方法,其特征在于,所述根據(jù)所述映射關(guān)系,將所述鍵盤的輸入字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗口的步驟具體包括 接收每個所述鍵盤輸入的字符; 根據(jù)所述輸入字符的鍵盤的鍵盤標識符,查詢所述映射關(guān)系表,將所述字符發(fā)送至所述鍵盤對應(yīng)的所述應(yīng)用程序窗口。
4.根據(jù)權(quán)利要求2所述的實現(xiàn)多鍵盤同時輸入的方法,其特征在于,還包括以下的一個或多個步驟 識別斷開連接的所述鍵盤的鍵盤標識符,刪除所述映射關(guān)系表中的所述鍵盤標識符及對應(yīng)的窗口標識符; 識別關(guān)閉的所述應(yīng)用程序窗口的窗口標識符,刪除所述映射關(guān)系表中的所述鍵盤標識符及對應(yīng)的窗口標識符; 解除所述已建立的所述鍵盤及對應(yīng)的應(yīng)用程序窗口的映射關(guān)系,刪除所述映射關(guān)系表中的所述鍵盤標識符及對應(yīng)的窗口標識符。
5.一種實現(xiàn)多鍵盤同時輸入的系統(tǒng),其特征在于,包括建立模塊和發(fā)送模塊; 所述建立模塊用于建立接入的鍵盤與應(yīng)用程序窗口的映射關(guān)系; 所述發(fā)送模塊用于根據(jù)所述建立模塊中的所述映射關(guān)系,將所述鍵盤輸入的字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗口。
6.根據(jù)權(quán)利要求5所述的實現(xiàn)多鍵盤同時輸入的系統(tǒng),其特征在于,所述建立模塊包括鍵盤標識符模塊、窗口標識符模塊和映射關(guān)系表模塊; 所述鍵盤標識符模塊用于獲取每一個接入的鍵盤的鍵盤標識符; 所述窗口標識符模塊用于獲取已開啟的應(yīng)用程序窗口的窗口標識符; 所述映射關(guān)系表模塊用于建立所述鍵盤標識符與對應(yīng)的所述窗口標識符之間的映射關(guān)系表。
7.根據(jù)權(quán)利要求6所述的實現(xiàn)多鍵盤同時輸入的系統(tǒng),其特征在于,所述發(fā)送模塊包括接收模塊和查詢發(fā)送模塊; 所述接收模塊用于接收每個所述鍵盤輸入的字符; 所述查詢發(fā)送模塊用于根據(jù)所述輸入字符的鍵盤的鍵盤標識符,查詢所述映射關(guān)系表,將所述接收模塊中接收的所述字符發(fā)送至所述鍵盤對應(yīng)的所述應(yīng)用程序窗口。
8.根據(jù)權(quán)利要求5所述的實現(xiàn)多鍵盤同時輸入的系統(tǒng),其特征在于,還包括刪除模塊,所述刪除模塊用于 識別斷開連接的所述鍵盤的鍵盤標識符,刪除所述映射關(guān)系表模塊中所述映射關(guān)系表中的鍵盤標識符及對應(yīng)的窗口標識符; 或/和識別關(guān)閉的所述應(yīng)用程序窗口的窗口標識符,刪除所述映射關(guān)系表模塊中所述映射關(guān)系表中的鍵盤標識符及對應(yīng)的窗口標識符; 或/和解除所述已建立的所述鍵盤及對應(yīng)的應(yīng)用程序窗口的映射關(guān)系,刪除所述映射關(guān)系表I旲塊中所述映射關(guān)系表中的鍵盤標識符及對應(yīng)的窗口標識符。
全文摘要
本發(fā)明涉及多鍵盤輸入技術(shù)領(lǐng)域,特別是涉及一種實現(xiàn)多鍵盤同時輸入的方法和系統(tǒng)。該方法步驟包括建立接入的鍵盤與應(yīng)用程序窗口的映射關(guān)系;根據(jù)所述映射關(guān)系,將所述鍵盤輸入的字符發(fā)送至對應(yīng)的所述應(yīng)用程序窗口。本發(fā)明通過建立鍵盤及對應(yīng)的應(yīng)用程序窗口的映射關(guān)系,每個鍵盤輸入的字符通過查找映射關(guān)系即可發(fā)送至對應(yīng)的應(yīng)用程序窗口,實現(xiàn)了多個鍵盤同時向不同的應(yīng)用程序窗口發(fā)送字符;本發(fā)明的原理設(shè)計巧妙,實現(xiàn)方式簡單,實現(xiàn)多人獨立同時操作,大大提高了工作效率,實用性非常高,值得推廣。
文檔編號G06F9/44GK102750151SQ20121020383
公開日2012年10月24日 申請日期2012年6月19日 優(yōu)先權(quán)日2012年6月19日
發(fā)明者劉明華, 朱小華 申請人:廣東威創(chuàng)視訊科技股份有限公司