外掛輸入法及外掛輸入系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子設(shè)備的信息處理技術(shù),特別涉及一種外掛輸入法及外掛輸入系統(tǒng)。
【背景技術(shù)】
[0002]基于目前主流的輸入法,包括(百度輸入法,搜狗拼音輸入法,QQ拼音輸入法,谷歌拼音輸入法)等,都是采用傳統(tǒng)的頂E(Input Method Editors,輸入法編輯器)框架或者TSF (Text Service Framework)框架開發(fā)的輸入法,這些輸入法的主程序?yàn)閯?dòng)態(tài)鏈接庫。
[0003]但是,上述的輸入法,是需要應(yīng)用程序(可執(zhí)行程序)主動(dòng)加載輸入法(即動(dòng)態(tài)鏈接庫),才能進(jìn)行打字輸入。而且,這種輸入法還存在如下缺陷:1、在每打開一個(gè)新的應(yīng)用程序,都需要通過右下角的輸入法語言欄切換到用戶使用的輸入法。2、當(dāng)這個(gè)輸入法因程序上的問題而崩潰時(shí),會造成加載這個(gè)輸入法的應(yīng)用程序崩潰。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決的問題在于提供一種外掛輸入法及外掛輸入系統(tǒng),可以在任何一個(gè)焦點(diǎn)窗口直接輸入文字,省去每次向新的焦點(diǎn)窗口輸入文字都要切換輸入法的步驟,使用方便;同時(shí),外掛輸入系統(tǒng)與需要文字輸入的應(yīng)用程序相互獨(dú)立,避免了對應(yīng)用程序造成影響。
[0005]為解決上述技術(shù)問題,本發(fā)明的實(shí)施方式提供了一種外掛輸入法,包含以下步驟:
[0006]用于輸入文字的應(yīng)用程序?qū)K端的文字輸入模塊進(jìn)行監(jiān)控;
[0007]若檢測到用戶在所述文字輸入模塊上的操作,則獲取所述操作對應(yīng)的編碼信息;
[0008]根據(jù)所述編碼信息檢索出對應(yīng)的文字,并將檢索出的文字輸出至當(dāng)前輸入焦點(diǎn)的窗P。
[0009]本發(fā)明的實(shí)施方式還提供了一種外掛輸入系統(tǒng),包含:監(jiān)控模塊、獲取模塊、檢索模塊與輸出模塊;
[0010]所述監(jiān)控模塊,用于對終端的文字輸入模塊進(jìn)行監(jiān)控,并在檢測到用戶在所述文字輸入模塊上的操作時(shí),觸發(fā)所述獲取模塊;
[0011]所述獲取模塊,用于根據(jù)所述監(jiān)控模塊檢測到的操作獲取對應(yīng)的編碼信息;
[0012]所述檢索模塊,用于根據(jù)所述獲取模塊獲取的編碼信息檢索出對應(yīng)的文字;
[0013]所述輸出模塊,用于將所述檢索模塊檢索出的文字輸出至終端的當(dāng)前輸入焦點(diǎn)的窗P。
[0014]本發(fā)明實(shí)施方式相對于現(xiàn)有技術(shù)而言,進(jìn)行文字輸入的是一個(gè)完整的應(yīng)用程序(即可執(zhí)行程序),該應(yīng)用程序?qū)K端的文字輸入模塊進(jìn)行監(jiān)控,一旦檢測到用戶在文字輸入模塊上的操作,就獲取該操作對應(yīng)的編碼信息,并根據(jù)獲取的編碼信息檢索出對應(yīng)的文字,最后,將檢索出的文字輸出至當(dāng)前輸入焦點(diǎn)的窗口。這樣,可以在任何一個(gè)焦點(diǎn)窗口直接輸入文字,省去每次向新的焦點(diǎn)窗口輸入文字都要切換輸入法的步驟,使用方便;同時(shí),用于輸入文字的應(yīng)用程序與需要文字輸入的應(yīng)用程序相互獨(dú)立,避免了對需要文字輸入的應(yīng)用程序造成影響。
[0015]另外,在所述用于輸入文字的應(yīng)用程序?qū)K端的文字輸入模塊進(jìn)行監(jiān)控的步驟中,對終端的文字輸入模塊進(jìn)行周期性監(jiān)控。周期性監(jiān)控可以節(jié)約能耗。
[0016]另外,在根據(jù)所述編碼信息檢索出對應(yīng)的文字的步驟之后,且在將檢索出的文字輸出至當(dāng)前輸入焦點(diǎn)的窗口的步驟之前,包含以下步驟:將檢索出的文字輸出至檢索結(jié)果的顯示模塊進(jìn)行顯示。將檢索出的文字輸出顯示模塊進(jìn)行顯示,以供用戶檢查檢索結(jié)果是否符合用戶需求,提高本發(fā)明實(shí)施方式的實(shí)用性。
【附圖說明】
[0017]圖1是根據(jù)本發(fā)明第一實(shí)施方式的外掛輸入法的流程圖;
[0018]圖2是根據(jù)本發(fā)明第一實(shí)施方式中的檢索結(jié)果顯示示意圖;
[0019]圖3是根據(jù)本發(fā)明第二實(shí)施方式的外掛輸入系統(tǒng)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0020]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明的各實(shí)施方式進(jìn)行詳細(xì)的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實(shí)施方式中,為了使讀者更好地理解本申請而提出了許多技術(shù)細(xì)節(jié)。但是,即使沒有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請各權(quán)利要求所要求保護(hù)的技術(shù)方案。
[0021]本發(fā)明的第一實(shí)施方式涉及一種外掛輸入法,具體流程如圖1所示,包含以下步驟:
[0022]步驟101,創(chuàng)建監(jiān)控模塊。
[0023]在本實(shí)施方式中,終端為電腦,電腦的操作系統(tǒng)為Windows,文字輸入模塊為鍵盤,監(jiān)控模塊為鍵盤鉤子。在本步驟中,用于輸入文字的應(yīng)用程序可以通過調(diào)用Windows底層的應(yīng)用程序接口(API)創(chuàng)建鍵盤鉤子。
[0024]鍵盤鉤子的本質(zhì)是一段用以捕獲在任意窗口上的鍵盤輸入的程序,通過系統(tǒng)調(diào)用掛入系統(tǒng)。其中,鍵盤鉤子的具體實(shí)現(xiàn)程序如下:
[0025]HHOOK hExeHook = SetffindowsHookEx (WH_KEYB0ARD_LL, H00KPR0C (KeyboardHookAll), hlnstance, 0)。
[0026]其中,HHOOK為Windows的鍵盤鉤子句柄,hExeHook為保存外掛輸入法的鍵盤鉤子句柄變量,SetffindowsHookEx 為 Windows 系統(tǒng)創(chuàng)建鉤子函數(shù),WH_KEYB0ARD_LL 為 Windows系統(tǒng)創(chuàng)建鉤子類型為鍵盤鉤子,H00KPR0C (KeyboardHookAlI)為外掛創(chuàng)建Windows鍵盤鉤子的回調(diào)函數(shù),hlnstance為外掛應(yīng)用程序的當(dāng)前實(shí)例的句柄。
[0027]步驟102,用于輸入文字的應(yīng)用程序利用監(jiān)控模塊對文字輸入模塊進(jìn)行監(jiān)控。
[0028]在本實(shí)施方式中,用于輸入文字的應(yīng)用程序通過鍵盤鉤子回調(diào)函數(shù),對終端的鍵盤操作進(jìn)行監(jiān)控。一旦用戶在鍵盤上進(jìn)行了操作,鍵盤鉤子就可以捕獲用戶在鍵盤上的操作,這時(shí),鍵盤鉤子回調(diào)函數(shù)的值就會發(fā)生變化。其中,鍵盤鉤子回調(diào)函數(shù)的值與用戶在鍵盤上的操作--對應(yīng)。
[0029]在本實(shí)施方式中,對終端的鍵盤進(jìn)行周期性監(jiān)控。采用周期性監(jiān)控鍵盤,而非實(shí)時(shí)監(jiān)控鍵盤,可以節(jié)約能耗。其中,對終端的鍵盤進(jìn)行監(jiān)控的周期可以經(jīng)試驗(yàn)獲取。
[0030]步驟103,根據(jù)監(jiān)控結(jié)果判斷是否檢測到用戶在文字輸入模塊上的操作。若是,則執(zhí)行步驟104,否則,返回執(zhí)行步驟102。具體而言,在監(jiān)控結(jié)果中,若鍵盤鉤子回調(diào)函數(shù)的值未發(fā)生變化,則表明未檢測到用戶在鍵盤上的操作,否則,表明檢測到用戶在鍵盤上的操作。
[0031]步驟104,獲取操作對應(yīng)的編碼信息。在本實(shí)施方式中,用于輸入文字的應(yīng)用程序根據(jù)鍵盤鉤子回調(diào)函數(shù)的值就可以獲知用戶在鍵盤上的操作對應(yīng)的編碼信息。其中,鍵盤上每一個(gè)按鍵被按下都對應(yīng)一個(gè)編碼信息,若干個(gè)按鍵依次被按下,則對應(yīng)一串編碼信息。
[0032]步驟105,根據(jù)編碼信息檢索出對應(yīng)的文字。用于輸入文字的應(yīng)用程序在得到編碼信息后,便根據(jù)編碼信息從預(yù)設(shè)的詞庫中檢索出對應(yīng)的文字,其中,一個(gè)編碼信息對應(yīng)一個(gè)或多個(gè)字、詞。比如,若用于輸入文字的應(yīng)用程序安裝的是與拼音對應(yīng)的詞庫,當(dāng)用戶在鍵盤上按下“wannengwubishurufa”時(shí),用于輸入文字的應(yīng)用程序根據(jù)“wannengwub i shurufa ”的編碼信息,從詞庫中檢索出的文字為“萬能五筆輸入法、萬能五
[0033]當(dāng)然,在實(shí)際應(yīng)用時(shí),用于輸入文字的應(yīng)用程序也可以安裝與其他