一種模擬鍵盤輸入的方法及裝置制造方法
【專利摘要】本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種用軟件模擬鍵盤的方法及裝置。本發(fā)明所述的方法包括:在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤;建立所述虛擬鍵盤與用戶層之間的通信接口;在所述用戶層建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系;監(jiān)聽是否有用戶命令到達(dá),如果有,則根據(jù)所述對應(yīng)關(guān)系,觸發(fā)所述用戶命令對應(yīng)的虛擬鍵盤按鍵。本發(fā)明將虛擬鍵盤創(chuàng)建在操作系統(tǒng)內(nèi)核級,采用內(nèi)核驅(qū)動技術(shù),使得模擬的擊鍵消息不易被應(yīng)用軟件屏蔽,本發(fā)明所述的方法的軟件兼容性強(qiáng)。
【專利說明】一種模擬鍵盤輸入的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種模擬鍵盤輸入的方法及裝置。
【背景技術(shù)】
[0002]近年來,人們對辦公、游戲自動化的需求越來越多,例如在軟件測試行業(yè),測試人員往往需要對軟件進(jìn)行大量重復(fù)、簡單的操作,比如輸入命令、輸入網(wǎng)址等等,如果能使輸入自動化,測試效率將大大提高。應(yīng)此需求,市場上出現(xiàn)了很多辦公、游戲自動化的軟件,這類軟件的基本原理大多數(shù)是基于一些虛擬鍵盤,或者使用鉤子技術(shù),用相應(yīng)的指令控制虛擬設(shè)備完成一系列的動作,只需一個(gè)簡單的動作即可完成很多復(fù)雜的操作,從而達(dá)到解放雙手、提聞效率的目的。
[0003]目前大部分用鉤子技術(shù)實(shí)現(xiàn)的虛擬鍵盤,其原理是通過系統(tǒng)定義的HHOOK WINAPISetffindowsHookEx/(int idHook, H00KPR0C lpfn, HINSTANCE hMod, DWORD dwThreadld)函數(shù),將一個(gè)動態(tài)鏈接庫文件注冊到系統(tǒng)接口中,當(dāng)有鍵盤消息產(chǎn)生時(shí),系統(tǒng)就會調(diào)用動態(tài)鏈接庫中由Ipfn參數(shù)指定的回調(diào)函數(shù),程序通過在回調(diào)函數(shù)中把系統(tǒng)傳遞的消息屏蔽,自己重新產(chǎn)生一個(gè)擊鍵消息并沿著鉤子鏈繼續(xù)傳遞,或者直接修改系統(tǒng)傳遞的擊鍵消息。另一種實(shí)現(xiàn)虛擬鍵盤的主流技術(shù)是通過系統(tǒng)定義的VOID WINAPI keybd_event (BYTE bVk, BYTEbScan, DWORD dwFlags, UL0NG_PTR dwExtralnfo)函數(shù),來主動發(fā)送鍵盤擊鍵消息。
[0004]這些方法都是在操作系統(tǒng)用戶級別下執(zhí)行的,其模擬的擊鍵消息容易被很多軟件屏蔽,軟件兼容性不強(qiáng)。
【發(fā)明內(nèi)容】
[0005]鑒于此,本發(fā)明提供一種模擬鍵盤輸入的方法及裝置,該方法模擬的擊鍵消息不易被應(yīng)用軟件屏蔽,使得該方法的軟件兼容性強(qiáng)。
[0006]本發(fā)明的技術(shù)方案:
[0007]一種模擬鍵盤輸入的方法,包括:
[0008]定義欲模擬的按鍵,根據(jù)所述欲模擬的按鍵,在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤;
[0009]為所述虛擬鍵盤加載驅(qū)動,建立所述虛擬鍵盤與用戶層之間的通信接口 ;
[0010]在所述用戶層建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系;
[0011]監(jiān)聽是否有用戶命令到達(dá),如果有,則根據(jù)所述對應(yīng)關(guān)系,觸發(fā)所述用戶命令對應(yīng)的虛擬鍵盤按鍵;否則,繼續(xù)監(jiān)聽是否有用戶命令到達(dá)。
[0012]進(jìn)一步地,所述按鍵為多媒體功能按鍵。
[0013]進(jìn)一步地,所述按鍵為普通鍵盤的按鍵。
[0014]進(jìn)一步地,所述定義欲模擬的按鍵的方式為通過HID描述符定義。
[0015]一種模擬鍵盤輸入的裝置,包括:
[0016]虛擬鍵盤創(chuàng)建單元,用于定義欲模擬的按鍵,根據(jù)所述欲模擬的按鍵,在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤;[0017]通信接口建立單元,用于為所述虛擬鍵盤加載驅(qū)動,建立所述虛擬鍵盤與用戶層之間的通信接口;
[0018]用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系建立單元,用于在所述用戶層建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系;
[0019]用戶命令監(jiān)聽單元,用于監(jiān)聽是否有用戶命令到達(dá),如果有,則根據(jù)所述對應(yīng)關(guān)系,觸發(fā)所述用戶命令對應(yīng)的虛擬鍵盤按鍵;否則,繼續(xù)監(jiān)聽是否有用戶命令到達(dá)。
[0020]進(jìn)一步地,所述按鍵為多媒體功能按鍵。
[0021 ] 進(jìn)一步地,所述按鍵為普通鍵盤的按鍵。
[0022]進(jìn)一步地,所述定義欲模擬的按鍵的方式為通過HID描述符定義。
[0023]本發(fā)明有益效果:
[0024]本發(fā)明所述的方法包括:在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤;建立所述虛擬鍵盤與用戶層之間的通信接口 ;在所述用戶層建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系;監(jiān)聽是否有用戶命令到達(dá),如果有,則根據(jù)所述對應(yīng)關(guān)系,觸發(fā)所述用戶命令對應(yīng)的虛擬鍵盤按鍵。本發(fā)明將虛擬鍵盤創(chuàng)建在操作系統(tǒng)內(nèi)核級,采用內(nèi)核驅(qū)動技術(shù),使得模擬的擊鍵消息不易被應(yīng)用軟件屏蔽,本發(fā)明所述的方法的軟件兼容性強(qiáng)。
【專利附圖】
【附圖說明】
[0025]圖1是本發(fā)明一種用軟件模擬鍵盤的方法的流程圖。
[0026]圖2是本發(fā)明一種用軟件模擬鍵盤的裝置的框圖。
【具體實(shí)施方式】
[0027]為了更清楚地說明本發(fā)明的技術(shù)方案,下面結(jié)合附圖并通過【具體實(shí)施方式】來進(jìn)一步說明本發(fā)明的技術(shù)方案。
[0028]參見圖1,一種用軟件模擬鍵盤的方法,包括:
[0029]S101、定義欲模擬的按鍵,根據(jù)所述欲模擬的按鍵,在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤;
[0030]步驟SlOl中,定義欲模擬的按鍵的具體方式為通過HID描述符;
[0031]根據(jù)用戶需求及市場的需求,可靈活定義欲模擬的按鍵。
[0032]比如可定義普通鍵盤的按鍵:如主鍵盤區(qū)的按鍵,包括字母鍵、標(biāo)點(diǎn)符號鍵、回車鍵(Enter)、大寫字母鎖定鍵(Cap Lock)、空格鍵、換擋鍵(Shift)、退格鍵(Backspace)、控制鍵(Ctrl)、轉(zhuǎn)換鍵(Alt)和制表鍵(Tab);如小鍵盤區(qū)的按鍵;如功能鍵盤區(qū)的按鍵,包括自定義功能鍵(F1、……F12)、取消鍵(Esc)、屏幕打印鍵(Print Screen)、屏幕鎖定鍵(Sroll Lock)、暫停 / 中止鍵(Pause/Break)、Page Up 和 Page Down 鍵、首鍵(Home)和尾鍵(End)、插入/改寫建(Insert)、刪除鍵(Delete)。
[0033]也可以定義各種多媒體功能按鍵:如播放鍵、加大聲音鍵、減小聲音鍵、靜音鍵、上一首音樂鍵、下一首音樂鍵、休眠鍵等等。
[0034]根據(jù)用戶需求及市場的需 求,靈活定義欲模擬的按鍵,使得本發(fā)明的方法具有良好的擴(kuò)展性。
[0035]根據(jù)所述欲模擬的按鍵,在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤:比如定義的欲模擬的按鍵為主鍵盤區(qū)的按鍵和功能鍵盤區(qū)的按鍵,則在操作系統(tǒng)內(nèi)核中創(chuàng)建“主鍵盤區(qū)的按鍵和功能鍵盤區(qū)的按鍵”的虛擬鍵盤;比如定義的要模擬的按鍵為小鍵盤區(qū)的按鍵和功能鍵盤區(qū)的按鍵,則在操作系統(tǒng)內(nèi)核中創(chuàng)建“小鍵盤區(qū)的按鍵和功能鍵盤區(qū)的按鍵”的虛擬鍵盤。
[0036]S102、為所述虛擬鍵盤加載驅(qū)動,建立所述虛擬鍵盤與用戶層之間的通信接口 ;
[0037]步驟S102中,所述虛擬鍵盤創(chuàng)建在操作系統(tǒng)內(nèi)核中,為虛擬鍵盤加載驅(qū)動為采用內(nèi)核驅(qū)動技術(shù),本發(fā)明將虛擬鍵盤創(chuàng)建在操作系統(tǒng)內(nèi)核級,采用內(nèi)核驅(qū)動技術(shù),使得模擬的擊鍵消息不易被應(yīng)用軟件屏蔽,使得本發(fā)明所述的方法的軟件兼容性強(qiáng)。
[0038]為所述虛擬鍵盤加載驅(qū)動,驅(qū)動運(yùn)行起來后,進(jìn)行相應(yīng)的初始化,建立所述虛擬鍵盤與用戶層之間的通信接口。
[0039]S103、在所述用戶層建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系;
[0040]步驟S103中,建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系,如下表格所示:
[0041]
【權(quán)利要求】
1.一種模擬鍵盤輸入的方法,其特征在于,包括: 定義欲模擬的按鍵,根據(jù)所述欲模擬的按鍵,在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤; 為所述虛擬鍵盤加載驅(qū)動,建立所述虛擬鍵盤與用戶層之間的通信接口 ; 在所述用戶層建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系; 監(jiān)聽是否有用戶命令到達(dá),如果有,則根據(jù)所述對應(yīng)關(guān)系,觸發(fā)所述用戶命令對應(yīng)的虛擬鍵盤按鍵;否則,繼續(xù)監(jiān)聽是否有用戶命令到達(dá)。
2.根據(jù)權(quán)利要求1所述模擬鍵盤輸入的方法,其特征在于,所述按鍵為多媒體功能按鍵。
3.根據(jù)權(quán)利要求1所述模擬鍵盤輸入的方法,其特征在于,所述按鍵為普通鍵盤的按鍵。
4.根據(jù)權(quán)利要求1所述模擬鍵盤輸入的方法,其特征在于,所述定義欲模擬的按鍵的方式為通過HID描述符定義。
5.—種模擬鍵盤輸入的裝置,其特征在于,包括: 虛擬鍵盤創(chuàng)建單元,用于定義欲模擬的按鍵,根據(jù)所述欲模擬的按鍵,在操作系統(tǒng)內(nèi)核中創(chuàng)建虛擬鍵盤; 通信接口建立單元,用于為所述虛擬鍵盤加載驅(qū)動,建立所述虛擬鍵盤與用戶層之間的通信接口; 用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系建立單元,用于在所述用戶層建立用戶命令與虛擬鍵盤按鍵的對應(yīng)關(guān)系; 用戶命令監(jiān)聽單元,用于監(jiān)聽是否有用戶命令到達(dá),如果有,則根據(jù)所述對應(yīng)關(guān)系,觸發(fā)所述用戶命令對應(yīng)的虛擬鍵盤按鍵;否則,繼續(xù)監(jiān)聽是否有用戶命令到達(dá)。
6.根據(jù)權(quán)利要求5所述模擬鍵盤輸入的裝置,其特征在于,所述按鍵為多媒體功能按鍵。
7.根據(jù)權(quán)利要求5所述模擬鍵盤輸入的裝置,其特征在于,所述按鍵為普通鍵盤的按鍵。
8.根據(jù)權(quán)利要求5所述模擬鍵盤輸入的裝置,其特征在于,所述定義欲模擬的按鍵的方式為通過HID描述符定義。
【文檔編號】G06F3/023GK103605430SQ201310642546
【公開日】2014年2月26日 申請日期:2013年12月3日 優(yōu)先權(quán)日:2013年12月3日
【發(fā)明者】曾理 申請人:深圳雷柏科技股份有限公司