專(zhuān)利名稱(chēng):計(jì)算機(jī)即時(shí)查詢(xún)輸入方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)信息查詢(xún)的關(guān)鍵字輸入方法,更具體地說(shuō),本發(fā)明涉及用于利用計(jì)算機(jī)作為信息查詢(xún)工具時(shí)的關(guān)鍵字輸入方法。
在過(guò)去十多年,計(jì)算機(jī)越來(lái)越普及,應(yīng)用方面也越來(lái)越廣,人們利用計(jì)算機(jī)所處理的數(shù)據(jù)也越來(lái)越多。由于計(jì)算機(jī)運(yùn)行速度快,儲(chǔ)存容量大,計(jì)算準(zhǔn)確,所以計(jì)算機(jī)經(jīng)常作為信息查詢(xún)的工具。
運(yùn)行信息查詢(xún)工具的軟件時(shí),必須要輸入關(guān)鍵字,才能進(jìn)行查找(例如查詢(xún)英漢詞典時(shí),必須先輸入英文單詞,才能查找英文單詞的中文涵義)。過(guò)去的信息查詢(xún)工具,都離不開(kāi)“用戶輸入 查詢(xún)”的步驟,當(dāng)用戶需要對(duì)某個(gè)關(guān)鍵字進(jìn)行查詢(xún)時(shí),用戶必須用鍵盤(pán)輸入關(guān)鍵字,這對(duì)于用戶來(lái)說(shuō)帶來(lái)很大的麻煩和輸入錯(cuò)誤。人們需要一種快速簡(jiǎn)便的輸入關(guān)鍵字的方法。
本發(fā)明大大簡(jiǎn)化了信息查詢(xún)的關(guān)鍵字輸入方法。她不再需要鍵盤(pán)的輸入,當(dāng)用戶在屏幕上發(fā)現(xiàn)某個(gè)關(guān)鍵字需要查詢(xún)時(shí)(如查詢(xún)她的中文涵義、拼音或讀音),只需把鼠標(biāo)移在想查詢(xún)的關(guān)鍵字上停留0.5~1.0秒,查詢(xún)的結(jié)果將馬上顯示(或閱讀)出來(lái)(如圖1所示)。
本發(fā)明的目的是提供一種在計(jì)算機(jī)上不需鍵盤(pán)輸入,只用鼠標(biāo)器指示被查找的關(guān)鍵字,便能從屏幕顯示文字中取得作為信息查詢(xún)的關(guān)鍵字的自動(dòng)輸入方法。
本發(fā)明通過(guò)下述技術(shù)方案完成,整個(gè)工作流程分為5個(gè)模塊(如圖4所示)1.定時(shí)查找。本模塊的功能是定時(shí)檢查鼠標(biāo)的狀態(tài),當(dāng)鼠標(biāo)在屏幕上停留一定時(shí)間時(shí)(一般在0.5~1.0秒),本模塊將執(zhí)行第二模塊。
2.取當(dāng)前點(diǎn)的字符串。本模塊的功能是根據(jù)上一模塊給出的鼠標(biāo)坐標(biāo)點(diǎn),取出屏幕上覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的字符串。當(dāng)存在這字符串時(shí),調(diào)用第三模塊。
3.分離關(guān)鍵字。從上一模塊得到的是覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的字符串,這通常是一句話,而查詢(xún)字典時(shí)通常都是一個(gè)詞。所以本模塊的功能是在字符串中找出覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的關(guān)鍵字,然后交給下一模塊處理。
4.查找。上一模塊已經(jīng)得到覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的關(guān)鍵字,而這模塊的功能是利用已經(jīng)得到覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的關(guān)鍵字進(jìn)行信息查詢(xún),然后把結(jié)果交給下一模塊。
5.輸出。本模塊的功能是利用輸出設(shè)備輸出查詢(xún)的結(jié)果。由于字典的內(nèi)容是多種多樣的,她可以是文本(例如漢英雙向字典,拼音等),也可以是二進(jìn)制數(shù)據(jù)(例如語(yǔ)音庫(kù)等),所以輸出方法也是多種多樣的,應(yīng)該根據(jù)數(shù)據(jù)的不同形式輸出。
以下詳述五個(gè)模塊之功能及實(shí)現(xiàn)方法功能模塊1定時(shí)查找入口參數(shù)無(wú)。
出口參數(shù)查詢(xún)坐標(biāo)點(diǎn)。
本模塊的功能是當(dāng)用戶把鼠標(biāo)放在屏幕一定的時(shí)間不動(dòng)時(shí),將觸發(fā)自動(dòng)查詢(xún)。
為實(shí)現(xiàn)這一功能,可以設(shè)置一個(gè)定時(shí)器,經(jīng)實(shí)驗(yàn)證明,定時(shí)間隔以0.35秒為佳(因?yàn)槭髽?biāo)停留后需要經(jīng)過(guò)兩個(gè)間隔程序才檢查出條件是否滿足,見(jiàn)下面執(zhí)行過(guò)程),每過(guò)一個(gè)定時(shí)間隔,系統(tǒng)將調(diào)用定時(shí)函數(shù)一次。
定時(shí)函數(shù)的處理過(guò)程如下1.如果是第一次執(zhí)行本函數(shù),則記下當(dāng)前的鼠標(biāo)位置,然后返回。否則,跳到下一步。
2.取當(dāng)前鼠標(biāo)位置,如果與上一次鼠標(biāo)位置不一致,保留當(dāng)前鼠標(biāo)位置,然后返回。否則,跳到下一步。
3.如果鼠標(biāo)當(dāng)前位置已經(jīng)查找過(guò),則返回。否則,跳到下一步。
4.取當(dāng)前點(diǎn)所在窗口,如果當(dāng)前點(diǎn)所在窗口是字典本身,返回。否則,跳到下一步。
5.現(xiàn)在,已經(jīng)滿足查找條件,調(diào)用下一個(gè)模塊進(jìn)行查找。功能模塊2取當(dāng)前點(diǎn)的字符串入口參數(shù)查詢(xún)坐標(biāo)點(diǎn)。
出口參數(shù)屏幕上覆蓋查詢(xún)坐標(biāo)點(diǎn)上的字符串及該字符串上覆蓋查詢(xún)坐標(biāo)點(diǎn)的字符位置。
當(dāng)前的GUI系統(tǒng)(如Windows、Windows NT、OS/2等)都是基于消息驅(qū)動(dòng)的。在每一個(gè)窗口中都存在一個(gè)消息處理函數(shù),當(dāng)發(fā)生某種事件時(shí)(如鼠標(biāo)移動(dòng)、按健等),系統(tǒng)將調(diào)用相應(yīng)的窗口消息處理函數(shù)通知該窗口發(fā)生的事件,而窗口消息處理函數(shù)會(huì)根據(jù)不同的消息作出相應(yīng)的處理。
在基于消息驅(qū)動(dòng)的系統(tǒng)中,都有一個(gè)名為WM_PAINT的消息(在不同的操作系統(tǒng)中,會(huì)有不同的名稱(chēng),但都有相同的意義)。當(dāng)要求某個(gè)窗口顯示內(nèi)容時(shí),系統(tǒng)將向該窗口發(fā)送名為WM_PAINT的消息。當(dāng)窗口消息處理函數(shù)收到WM_PAINT消息后,將調(diào)用系統(tǒng)的TextOut(顯示字符串)等函數(shù)在本窗口顯示出內(nèi)容。
通過(guò)以上的分析,我們可以按以下步驟取得屏幕任意點(diǎn)上所顯示的字符串1.截取系統(tǒng)操作系統(tǒng)的輸出字符串函數(shù)。
2.取得當(dāng)前點(diǎn)的窗口句柄,并向該窗口發(fā)送WM_PAINT消息。
3.當(dāng)窗口消息處理函數(shù)調(diào)用TextOut輸出字符串時(shí),分析字符串顯示的位置是否覆蓋當(dāng)前點(diǎn),如果是覆蓋當(dāng)前點(diǎn),則該字符串是所要尋找的字符串,跳到第4步;如果不覆蓋當(dāng)前點(diǎn),則繼續(xù)本步驟。
4.計(jì)算字符串中每一個(gè)字符的字寬,得出當(dāng)前點(diǎn)是在字符串中第幾個(gè)字符(這個(gè)值將在“分詞”中用到),跳到第6步。
5.如果窗口消息處理函數(shù)處理完WM_PAINT消息后,仍找不到覆蓋當(dāng)前點(diǎn)的字符串,則表示屏幕上當(dāng)前點(diǎn)不存在字符串。跳到下一步。
6.結(jié)束。功能模塊3分離關(guān)鍵字入口參數(shù)屏幕上覆蓋查詢(xún)坐標(biāo)點(diǎn)上的字符串及該字符串上覆蓋查詢(xún)坐標(biāo)點(diǎn)的字符位置。
出口參數(shù)屏幕上覆蓋查詢(xún)坐標(biāo)點(diǎn)上的關(guān)鍵字。
通過(guò)上一步驟可以獲取了當(dāng)前點(diǎn)的字符串和當(dāng)前點(diǎn)指向字符串中的位置,這一步驟是需要在字符串中提取查詢(xún)關(guān)鍵字。
關(guān)鍵字根據(jù)查詢(xún)的內(nèi)容不同而不同,可以是一個(gè)字符或一個(gè)詞匯,也可以是一個(gè)句子。下面,以漢英雙向詞典為例,說(shuō)明查詢(xún)步驟。
漢英雙向詞典是以詞為查詢(xún)關(guān)鍵字的,對(duì)于英文,分詞可以通過(guò)空格來(lái)分開(kāi),對(duì)于中文,則要從句子前面開(kāi)始搜索。下面是查詢(xún)步驟1.設(shè)置一個(gè)游標(biāo)指向句子開(kāi)始,跳到下一步。
2.如果當(dāng)前游標(biāo)位置是標(biāo)點(diǎn)符號(hào)或空格,游標(biāo)移至下一個(gè)非標(biāo)點(diǎn)符號(hào)或非空格的位置,跳到下一步。
3.如果當(dāng)前游標(biāo)位置跳過(guò)查詢(xún)坐標(biāo)點(diǎn)的字符,證明查詢(xún)坐標(biāo)點(diǎn)不存在詞匯,查詢(xún)結(jié)束。否則,跳到下一步。
4.如果當(dāng)前游標(biāo)位置是一個(gè)英文字母,游標(biāo)移至下一個(gè)非英文字母(如空格、標(biāo)點(diǎn)符號(hào)或中文字符),游標(biāo)經(jīng)過(guò)的地方作為一個(gè)詞,跳到第6步。
如果當(dāng)前游標(biāo)位置不是一個(gè)英文字母跳到第5步。
5.當(dāng)前位置為中文字符,按照“最長(zhǎng)匹配優(yōu)先”規(guī)則從當(dāng)前游標(biāo)位置取出詞匯,游標(biāo)移至本詞匯的結(jié)束位置,跳到下一步。
6.如果鼠標(biāo)查詢(xún)點(diǎn)的位置在查找出來(lái)的詞匯中,該詞匯作為查詢(xún)關(guān)鍵字,查詢(xún)結(jié)束。否則,跳到第2步。功能模塊4查找入口參數(shù)要查詢(xún)的關(guān)鍵詞。
出口參數(shù)對(duì)應(yīng)關(guān)鍵詞的內(nèi)容。
查找模塊根據(jù)查詢(xún)的內(nèi)容不同而不同,可以按照數(shù)據(jù)庫(kù)的格式存放數(shù)據(jù)內(nèi)容,并創(chuàng)建關(guān)鍵字索引。本模塊與本發(fā)明的技術(shù)關(guān)系不大,這里不作過(guò)多的敘說(shuō)。功能模塊5輸出入口參數(shù)要查詢(xún)的關(guān)鍵詞、對(duì)應(yīng)關(guān)鍵詞的內(nèi)容及要查詢(xún)的坐標(biāo)點(diǎn)。
出口參數(shù)通過(guò)輸出設(shè)備輸出內(nèi)容。
輸出部分根據(jù)查詢(xún)的內(nèi)容不同而不同。對(duì)于可顯示內(nèi)容,可以在鼠標(biāo)附近創(chuàng)建一個(gè)窗口,并在該窗口中顯示出查詢(xún)的關(guān)鍵字和查詢(xún)結(jié)果。對(duì)于語(yǔ)音數(shù)據(jù),則調(diào)用操作系統(tǒng)的聲音輸出函數(shù)輸出查詢(xún)結(jié)果。本模塊與本發(fā)明的技術(shù)關(guān)系不大,這里不作過(guò)多的敘說(shuō)。
以下說(shuō)明在Windows3.1上實(shí)現(xiàn)漢英辭典的實(shí)施例。初始化模塊Windows可以用SetTimer函數(shù)(見(jiàn)下面)設(shè)定一個(gè)定時(shí)器,設(shè)定參數(shù)為350毫秒。調(diào)用該函數(shù)后,Windows每隔350毫秒調(diào)用CRichdictView∷OnTimer函數(shù)。下面是本模塊的關(guān)鍵代碼。
定時(shí)查找模塊函數(shù)CRichdictView∷OnTimer將每隔350毫秒被調(diào)用一次。在函數(shù)CRichdictView∷OnTimer中,通過(guò)調(diào)用GetCursorPos取得鼠標(biāo)的當(dāng)前位置,通過(guò)判斷位置,確定是否進(jìn)行查詢(xún)。如果確定查詢(xún),調(diào)用GetWordInThePoint取得鼠標(biāo)位置的查詢(xún)關(guān)鍵字,并調(diào)用ShowResult顯示結(jié)果。下面是本模塊的關(guān)鍵代碼。
取當(dāng)前點(diǎn)的字符串模塊Windows應(yīng)用程序通過(guò)TextOut和ExtTextOut函數(shù)顯示字符串,所以在程序開(kāi)始先把這兩個(gè)函數(shù)截獲。為了向應(yīng)用窗口發(fā)送WM_PAINT消息,刷新窗口屏幕,可以通過(guò)調(diào)用Windows的InvalidateRect函數(shù)實(shí)現(xiàn)。利用Windows的GetTextExtent函數(shù)可以計(jì)算字符的寬度。下面是本模塊的關(guān)鍵代碼。
分離關(guān)鍵字模塊分離英文可以通過(guò)英文之間的空格、標(biāo)點(diǎn)符號(hào)來(lái)實(shí)現(xiàn),但分離中文則要從字符串的開(kāi)始位置開(kāi)始搜索。下面是本模塊的關(guān)鍵代碼。
查找和輸出模塊查找中英文部分可以通過(guò)RichWin的知識(shí)庫(kù)獲得,查找后在鼠標(biāo)位置附近把內(nèi)容顯示出來(lái)(如所示)。下面是本模塊的關(guān)鍵代碼。
以下為本發(fā)明的操作過(guò)程。
1.如圖2所示為用戶運(yùn)行某個(gè)應(yīng)用程序時(shí),該應(yīng)用程序在屏幕上顯示出多行文本。
2.當(dāng)用戶需要對(duì)屏幕上的某個(gè)關(guān)鍵字(本例子的關(guān)鍵字為“停留”)進(jìn)行查詢(xún)時(shí),用戶把鼠標(biāo)移至所查關(guān)鍵字的位置(如圖2所示的鼠標(biāo)位置)。
3.當(dāng)鼠標(biāo)在以上所述的位置停留一定的時(shí)間時(shí)(一般在0.5~1.0秒),鼠標(biāo)位置所指向的關(guān)鍵字(本例子的關(guān)鍵字為“停留”)將自動(dòng)被輸入至查詢(xún)程序中(本例子的查詢(xún)工具為漢英字典)。
4.查詢(xún)工具接收到被輸入的關(guān)鍵字后,在鼠標(biāo)的附近將顯示出對(duì)該關(guān)鍵字的查詢(xún)結(jié)果(如圖3,本例子為查出關(guān)鍵字“停留”的英文單詞)。
圖1為英漢辭典實(shí)施例的查找(英譯漢)示意圖。當(dāng)鼠標(biāo)停留在“China”上0.5~1.0秒后屏幕顯示出“China”的中文涵義。
圖2為漢英辭典實(shí)施例的查找(漢譯英)示意圖。當(dāng)用戶需要查找某個(gè)關(guān)鍵字時(shí)鼠標(biāo)移在MS-WORD程序中單詞“停留”的位置上。
圖3為漢英辭典實(shí)施例的查找(漢譯英)示意圖。當(dāng)鼠標(biāo)在MS-WORD程序中的單詞“停留”上停留0.5~1.0秒后屏幕顯示出“停留”的英文涵義。
圖4為本發(fā)明方法的工作總流程。
本發(fā)明有以下有益效果1.本發(fā)明所使用的輸入設(shè)備是鼠標(biāo),而不是鍵盤(pán),所以操作方便。
2.本發(fā)明可在多種系統(tǒng)平臺(tái)上實(shí)現(xiàn)。本發(fā)明可以用在Windows、Windows95、Windows NT、OS/2、Mac等多種圖形環(huán)境上。
3.本發(fā)明可用在多種應(yīng)用程序上。由于本發(fā)明的查詢(xún)方法與具體的應(yīng)用程序無(wú)關(guān),所以絕大多數(shù)運(yùn)行在圖形環(huán)境的應(yīng)用程序無(wú)需作任何修改,即可查詢(xún)她們顯示在屏幕上的關(guān)鍵字。
4.本發(fā)明可查閱的關(guān)鍵字不僅僅可以是英文,而且可以是中文、日語(yǔ)、標(biāo)點(diǎn)符號(hào),只要在屏幕上顯示出來(lái)的文字,都可以作為查詢(xún)關(guān)鍵字。
5.本發(fā)明可根據(jù)關(guān)鍵字可查詢(xún)多種字典。利用本發(fā)明,可以實(shí)現(xiàn)漢英、英漢、漢字內(nèi)碼、漢字輸入法、語(yǔ)音、同意詞查詢(xún)……等多種查詢(xún)工具。
6.本發(fā)明不影響原有應(yīng)用程序的執(zhí)行。原來(lái)應(yīng)用程序的操作方法、性能將不會(huì)有任何的影響。
7.由于本發(fā)明省去鍵盤(pán)輸入的步驟,所以大大提高了輸入的準(zhǔn)確性。
權(quán)利要求
1.一種計(jì)算機(jī)即時(shí)查詢(xún)輸入方法,其特征在于采用鼠標(biāo)器輸入被查詢(xún)的關(guān)鍵字。
2.如權(quán)利要求1所述的計(jì)算機(jī)即時(shí)查詢(xún)輸入方法,其特征在于所說(shuō)的用鼠標(biāo)器輸入按下述步驟完成1)定時(shí)查找,即定時(shí)檢查鼠標(biāo)的狀態(tài)。2)取當(dāng)前點(diǎn)的字符串,即根據(jù)上一模塊給出的鼠標(biāo)坐標(biāo)點(diǎn),取出屏幕上覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的字符串。3)分離關(guān)鍵字,即在字符串中找出覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的關(guān)鍵字。
3.如權(quán)利要求1所述的計(jì)算機(jī)即時(shí)查詢(xún)輸入方法,其特征在于完成關(guān)鍵詞輸入后,按下述步驟完成查詢(xún)1)查找,即利用已經(jīng)得到覆蓋鼠標(biāo)坐標(biāo)點(diǎn)的關(guān)鍵字進(jìn)行信息查詢(xún)。2)輸出,即利用輸出設(shè)備輸出查詢(xún)的結(jié)果。
全文摘要
本發(fā)明涉及計(jì)算機(jī)即時(shí)查詢(xún)輸入方法,該方法的特征是用鼠標(biāo)輸入被查詢(xún)關(guān)鍵字。使用本發(fā)明方法在計(jì)算機(jī)上查詢(xún)信息,只需將鼠標(biāo)指在欲查詢(xún)關(guān)鍵字上停留0.5~1.0秒,則在輸出設(shè)備中輸出查詢(xún)結(jié)果,而無(wú)需鍵盤(pán)輸入。本發(fā)明可在多種系統(tǒng)平臺(tái)上實(shí)現(xiàn),可用在Windows等多種圖形環(huán)境,多種應(yīng)用程序上。本發(fā)明所查關(guān)鍵字不僅可以是英文,而且可以是中、日文、標(biāo)點(diǎn)符號(hào)等。運(yùn)用本發(fā)明可查詢(xún)多種字典如漢英、英漢、漢字內(nèi)碼、漢字輸入法、語(yǔ)音等等。
文檔編號(hào)G06F17/30GK1142087SQ9610746
公開(kāi)日1997年2月5日 申請(qǐng)日期1996年6月7日 優(yōu)先權(quán)日1996年6月7日
發(fā)明者王志剛, 王志東 申請(qǐng)人:北京四通利方信息技術(shù)有限公司