專利名稱:一種基于個人信息管理軟件的個人信息管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息管理領(lǐng)域,尤其涉及一種基于個人信息管理軟件的個人信息管理方法。
背景技術(shù):
當前,個人信息管理(PIM,Personal Information Management)在日常生活中的應(yīng)用越來越多,也越來越重要。個人信息管理(PIM)軟件是一類用于管理個人和好友的所有個人信息的軟件,例如,可以管理個人和好友的電話號碼、手機號碼、家庭住址、生日等信息,參見圖1,圖1是一種個人信息管理軟件的基本界面圖。使用這樣的軟件,用戶可以方便地查找、添加和刪除用戶的聯(lián)系人的信息。在新的PIM軟件中,還增加了分組語音(VOIP,Voice Over Internet Protocol)呼叫功能,即通過直接點擊軟件中保存的電話號碼就可以發(fā)起一次VOIP呼叫,軟件將直接撥打該電話。
然而,在這類軟件中,如果需要添加新的聯(lián)系人的電話號碼很不方便,需要用戶手工輸入電話號碼,或者從屏幕的其它地方將該電話號碼復(fù)制并粘貼到軟件的相應(yīng)位置上,這無疑影響了用戶的使用積極性。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提供一種基于個人信息管理軟件的個人信息管理方法,使用該方法,用戶可以在軟件中快捷地添加聯(lián)系人的電話號碼,從而提高用戶使用軟件的積極性。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明提供一種基于個人信息管理軟件的個人信息管理方法,該方法包括A、通過個人信息管理軟件中的屏幕取詞獲得鼠標當前位置上的文本信息;
B、從獲得的文本信息中提取個人信息;C、將提取的個人信息保存至個人信息管理軟件中。
步驟A中所述屏幕取詞包括個人信息管理軟件中的鼠標鉤子函數(shù)打破個人信息管理軟件運行進程和系統(tǒng)用于顯示信息的進程的邊界,向用于顯示信息的進程的虛擬地址空間中注入含有截獲功能的代碼,利用該代碼獲得顯示信息。
步驟A中所述系統(tǒng)用于顯示信息的進程為系統(tǒng)的應(yīng)用程序接口API調(diào)用的進程。
所述步驟A包括A1、在個人信息管理軟件中創(chuàng)建包含系統(tǒng)鉤子函數(shù)的動態(tài)鏈接庫,啟動個人信息管理軟件,系統(tǒng)自動安裝系統(tǒng)級的鼠標鉤子函數(shù);A2、利用鼠標鉤子函數(shù)打破個人信息管理軟件的運行進程和系統(tǒng)應(yīng)用程序接口API調(diào)用進程的邊界,向API調(diào)用進程中加載動態(tài)鏈接庫,通過動態(tài)鏈接庫中具有截獲功能的代碼截獲用于顯示文本內(nèi)容的API函數(shù)的地址;A3、向鼠標下的窗口發(fā)送系統(tǒng)函數(shù)的重畫消息,調(diào)用用于顯示文本內(nèi)容的函數(shù)的地址,獲得鼠標當前位置上顯示的文本信息。
步驟A2中所述通過動態(tài)鏈接庫中具有截獲功能的代碼截獲用于顯示文本的API函數(shù)的地址之后,進一步包括將用于顯示文本內(nèi)容的API函數(shù)的地址修改為個人信息管理軟件下的用于顯示文本內(nèi)容的函數(shù)的地址。
步驟B和C中所述個人信息為電話號碼。
所述步驟B包括B1、判斷獲得的文本信息的第一個字符是否是最后一個,如果是,結(jié)束提取過程;否則,執(zhí)行步驟B2;B2、判斷第一個字符是否符合電話號碼的格式,如果不是,則計數(shù)器清零,取下一個字符作為第一個字符,返回執(zhí)行步驟B1;否則,執(zhí)行步驟B3;B3、計數(shù)器加1并判斷計數(shù)器的計數(shù)值是否超過預(yù)定的值,如果是,提取電話號碼,結(jié)束提取過程;否則,取下一個字符作為第一個字符,返回執(zhí)行步驟B1。
所述步驟B包括通過選中電話號碼來提取電話號碼。
所述步驟C進一步包括直接撥打提取的電話號碼發(fā)起分組語音VOIP呼叫。
從以上所述可以看到,本發(fā)明提供的方法具有以下有益效果本發(fā)明通過在個人信息管理軟件中增加鼠標屏幕取詞功能,大大簡化了用戶使用個人信息管理軟件添加新電話號碼的步驟,使用戶可以方便地保存屏幕上出現(xiàn)的電話號碼,并可以直接撥打屏幕上出現(xiàn)的電話號碼,從而提高用戶使用這類軟件的積極性。
圖1是現(xiàn)有技術(shù)中一種個人信息管理軟件的基本界面圖;圖2是根據(jù)本發(fā)明基于個人信息管理軟件的快捷添加電話號碼的流程圖;圖3是根據(jù)本發(fā)明獲得鼠標當前位置上的文本信息的流程圖;圖4是根據(jù)本發(fā)明提取電話號碼的流程圖;圖5是根據(jù)本發(fā)明添加電話號碼或直接撥打電話的界面示意圖。
圖6是根據(jù)本發(fā)明通過選中電話號碼進行保存或撥打電話操作的界面示意圖。
具體實施方式為了使本發(fā)明的特征和優(yōu)點更加清楚明白,下面參照附圖結(jié)合具體實施例對本發(fā)明作進一步的說明。
當前,在PIM軟件中添加新的電話號碼很不便捷,需要手工加入電話號碼或從屏幕上的其它地方復(fù)制粘貼過來,對此,本發(fā)明采用屏幕取詞的方法,從屏幕上直接提取電話號碼,并提供給用戶相應(yīng)的菜單使用戶可以直接將屏幕上提取的電話號碼添加到PIM軟件的地址本中,或者直接點擊用于表示撥打電話號碼的菜單發(fā)起VOIP呼叫。參見圖2,圖2是根據(jù)本發(fā)明的快捷添加電話號碼的流程圖,具體實現(xiàn)步驟如下步驟101、截獲對圖形設(shè)備接口(GDI,Graphics Device Interface)的WINDOWS應(yīng)用程序接口(API,Application Programming Interface)的調(diào)用,以獲得屏幕上當前鼠標位置的文本信息;計算機在屏幕上顯示文字和圖像等內(nèi)容,系統(tǒng)將調(diào)用需要顯示的內(nèi)容的圖形設(shè)備接口GDI的應(yīng)用程序接口API,相關(guān)GDI的API調(diào)用是在WINDOWS系統(tǒng)的進程中執(zhí)行的,本發(fā)明的PIM軟件的運行在WINDOWS系統(tǒng)中也有自己的進程空間。WINDOWS給每一個進程分配了4gb的地址空間,但是系統(tǒng)保留2gb到4gb之間的地址空間作為虛擬地址空間而禁止進程訪問,事實上這部分虛擬地址空間是所有的Win32進程所共享的,其中加載了共享Win32的動態(tài)鏈接庫、內(nèi)存映射文件、內(nèi)存管理器和文件系統(tǒng)碼等,另外,在0到2gb的地址空間中,WINDOWS還為16位的操作系統(tǒng)保留了0到4mb的地址空間,于是只有4mb到2gb之間的地址空間是每個進程私有的地址空間。在WINDOWS系統(tǒng)中,每個進程的私有地址空間是相對獨立的,所以PIM軟件想截獲屏幕上顯示的內(nèi)容就必須打破進程的邊界墻,向在屏幕上顯示內(nèi)容的進程中注入截獲GDI的API調(diào)用的代碼,從而獲得屏幕上顯示的信息。具體地,參見圖3,圖3是根據(jù)本發(fā)明獲得鼠標當前位置上的文本信息的流程圖。具體步驟如下步驟1011、在PIM軟件中創(chuàng)建一個包含系統(tǒng)鉤子函數(shù)的動態(tài)鏈接庫,在啟動PIM軟件的程序后,系統(tǒng)將自動安裝一個系統(tǒng)級的鼠標鉤子函數(shù);鼠標鉤子函數(shù)可以鉤到鼠標的位置消息,于是在啟動PIM軟件的情況下,無論鼠標移動到哪里,通過鼠標鉤子函數(shù)都可以知道鼠標的位置。此外,鼠標鉤子函數(shù)還可以打破進程之間的邊界,將動態(tài)鏈接庫加載到其它程序進程的虛擬地址空間中。
步驟1012、通過鼠標鉤子函數(shù)打破進程的邊界墻,向API調(diào)用的進程中加載動態(tài)鏈接庫,通過動態(tài)鏈接庫中具有截獲功能的代碼截獲調(diào)用的所有API函數(shù)的內(nèi)存地址,并將其中的用于顯示文本的API函數(shù)的地址修改為PIM軟件下的用于顯示文本的函數(shù)的地址;在啟動PIM軟件程序的情況下,當屏幕上顯示其它程序的內(nèi)容時,例如點擊IE進行網(wǎng)頁顯示時,移動鼠標,IE的API調(diào)用進程就會調(diào)用鼠標鉤子函數(shù),通過鼠標鉤子函數(shù)可以打破IE的API調(diào)用進程和PIM軟件運行進程之間的邊界墻,于是WINDOWS系統(tǒng)就會把鼠標鉤子函數(shù)所在的動態(tài)鏈接庫加載到API調(diào)用進程的虛擬地址空間中。也就是說,鼠標鉤子函數(shù)所在的動態(tài)鏈接庫中的代碼被注入到API調(diào)用進程的虛擬地址空間中,該代碼具有截獲功能,可以截獲調(diào)用的API函數(shù)的地址和內(nèi)容,于是PIM軟件就可以取得鼠標鉤子函數(shù)鉤到的API調(diào)用的所有WINDOWS模塊的基地址,從而進一步明確PIM軟件需要截獲的所有API函數(shù)的內(nèi)存地址,這里需要取得的是用于顯示文本的API函數(shù)textouta的地址;注入到API調(diào)用進程中的動態(tài)鏈接庫獲取到用于顯示文本的API函數(shù)textouta的地址后,會將這個地址修改為PIM軟件下用于顯示文本的函數(shù)mytextouta的地址,于是當系統(tǒng)調(diào)用用于顯示文本的函數(shù)textouta以顯示文本的內(nèi)容時,由于已經(jīng)修改了該函數(shù)的地址,所以實際上調(diào)用的是PIM軟件的函數(shù)mytextouta,這樣PIM軟件就可以獲得鼠標窗口下的文本信息。
步驟1013、PIM軟件調(diào)用系統(tǒng)函數(shù)向鼠標下的窗口發(fā)送系統(tǒng)函數(shù)中的重畫消息,該重畫消息可以設(shè)置取得哪個區(qū)域的文本數(shù)據(jù),此時,系統(tǒng)函數(shù)中的重畫消息會調(diào)用用于顯示文本的textouta函數(shù),由于已經(jīng)修改了該函數(shù)的地址,所以實際上調(diào)用的是PIM軟件的mytextouta函數(shù),于是PIM軟件就可以獲得鼠標當前位置上的文本信息,其中包含了需要保存的電話號碼。
步驟102、根據(jù)取得的文本信息,提取相關(guān)的電話號碼;由于大部分電話號碼符合****-*******(其中*代表數(shù)字)這樣的格式,于是只要判斷出獲得的文本信息中有符合這樣格式的字符就可以認為是電話號碼,所以參見圖4,圖4是根據(jù)獲取的文本信息提取電話號碼的流程圖,具體操作步驟如下步驟1021、獲取截獲的文本信息中的第一個字符;
步驟1022、判斷該字符是不是最后一個字符,如果是,結(jié)束提取流程;否則,執(zhí)行步驟1023;步驟1023、判斷該字符是不是數(shù)字或減號,如果是,執(zhí)行步驟1024-1025;否則,執(zhí)行步驟1026;步驟1024、該字符是數(shù)字或減號,有符合電話號碼的可能,所以將計數(shù)器加1;步驟1025、電話號碼符合****-*******(其中*代表數(shù)字)這樣的格式,則電話號碼應(yīng)該具有12位的長度,所以需要判斷計數(shù)器的計數(shù)是否超過12位,如果是,則可以認為提取了文本信息中的電話號碼,結(jié)束提取流程;否則,取下一個字符,返回執(zhí)行步驟1022;步驟1026、該字符不是數(shù)字或減號,則沒有符合電話號碼的可能,所以將計數(shù)器清零,取下一個字符,返回執(zhí)行步驟1022。
經(jīng)過以上步驟就可以提取到截獲的文本信息中的電話號碼,并且電話號碼符合****-*******(其中*代表數(shù)字)這樣的格式。
以上僅以提取符合****-*******(其中*代表數(shù)字)這樣格式的電話號碼為例,對提取電話號碼的流程進行了說明,對于符合其它格式的電話號碼,可以擴充其中的判斷步驟,以對其它格式的電話號碼進行提取并提高號碼識別的成功率。
步驟103、在提取了相關(guān)的電話號碼后,就可以直接保存該電話號碼或直接點擊該號碼發(fā)起VOIP的呼叫了。
電話號碼提取成功將觸發(fā)軟件調(diào)用保存電話號碼或撥打電話的程序,于是在電話號碼附近的窗口上將出現(xiàn)按鈕,用戶點擊該按鈕就可以直接發(fā)起VOIP呼叫或者將該電話號碼保存至軟件的地址本中,參見圖5,圖5是添加電話號碼或撥打電話的界面示意圖。從圖4中可以看到,在提取的電話號碼附近出現(xiàn)有“彩”字的按鈕菜單和有“保存”標志的按鈕菜單,點擊有“彩”字的按鈕菜單,將觸發(fā)軟件調(diào)用撥打電話號碼的程序,發(fā)起VOIP呼叫,點擊有“保存”標志的按鈕菜單,將觸發(fā)軟件調(diào)用保存電話號碼的程序,使軟件自動將該電話號碼添加到地址本中。
另外,當電話號碼不易識別時,還可以通過選中電話號碼進行撥打或保存的操作,例如,參見圖6,圖6是通過選中電話號碼進行保存或撥打電話操作的界面示意圖。從圖6中可以看到,在選中電話號碼后也會觸發(fā)軟件調(diào)用相關(guān)程序,于是窗口上也會出現(xiàn)保存或撥打的按鈕菜單,只要點擊相應(yīng)的按鈕菜單就可以實現(xiàn)保存電話號碼和直接發(fā)起VOIP呼叫的操作。
以上所述僅為本發(fā)明的較佳實施例,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于個人信息管理軟件的個人信息管理方法,其特征在于,該方法包括A、通過個人信息管理軟件中的屏幕取詞獲得鼠標當前位置上的文本信息;B、從獲得的文本信息中提取個人信息;C、將提取的個人信息保存至個人信息管理軟件中。
2.根據(jù)權(quán)利要求
1所述的方法,其特征在于,步驟A中所述屏幕取詞包括個人信息管理軟件中的鼠標鉤子函數(shù)打破個人信息管理軟件運行進程和系統(tǒng)用于顯示信息的進程的邊界,向用于顯示信息的進程的虛擬地址空間中注入含有截獲功能的代碼,利用該代碼獲得顯示信息。
3.根據(jù)權(quán)利要求
2所述的方法,其特征在于,步驟A中所述系統(tǒng)用于顯示信息的進程為系統(tǒng)的應(yīng)用程序接口API調(diào)用的進程。
4.根據(jù)權(quán)利要求
3所述的方法,其特征在于,所述步驟A包括A1、在個人信息管理軟件中創(chuàng)建包含系統(tǒng)鉤子函數(shù)的動態(tài)鏈接庫,啟動個人信息管理軟件,系統(tǒng)自動安裝系統(tǒng)級的鼠標鉤子函數(shù);A2、利用鼠標鉤子函數(shù)打破個人信息管理軟件的運行進程和系統(tǒng)應(yīng)用程序接口API調(diào)用進程的邊界,向API調(diào)用進程中加載動態(tài)鏈接庫,通過動態(tài)鏈接庫中具有截獲功能的代碼截獲用于顯示文本內(nèi)容的API函數(shù)的地址;A3、向鼠標下的窗口發(fā)送系統(tǒng)函數(shù)的重畫消息,調(diào)用用于顯示文本內(nèi)容的函數(shù)的地址,獲得鼠標當前位置上顯示的文本信息。
5.根據(jù)權(quán)利要求
4所述的方法,其特征在于,步驟A2中所述通過動態(tài)鏈接庫中具有截獲功能的代碼截獲用于顯示文本的API函數(shù)的地址之后,進一步包括將用于顯示文本內(nèi)容的API函數(shù)的地址修改為個人信息管理軟件下的用于顯示文本內(nèi)容的函數(shù)的地址。
6.根據(jù)權(quán)利要求
1所述的方法,其特征在于,步驟B和C中所述個人信息為電話號碼。
7.根據(jù)權(quán)利要求
6所述的方法,其特征在于,所述步驟B包括B1、判斷獲得的文本信息的第一個字符是否是最后一個,如果是,結(jié)束提取過程;否則,執(zhí)行步驟B2;B2、判斷第一個字符是否符合電話號碼的格式,如果不是,則計數(shù)器清零,取下一個字符作為第一個字符,返回執(zhí)行步驟B1;否則,執(zhí)行步驟B3;B3、計數(shù)器加1并判斷計數(shù)器的計數(shù)值是否超過預(yù)定的值,如果是,提取電話號碼,結(jié)束提取過程;否則,取下一個字符作為第一個字符,返回執(zhí)行步驟B1。
8.根據(jù)權(quán)利要求
6所述的方法,其特征在于,所述步驟B包括通過選中電話號碼來提取電話號碼。
9.根據(jù)權(quán)利要求
6所述的方法,其特征在于,所述步驟C進一步包括直接撥打提取的電話號碼發(fā)起分組語音VOIP呼叫。
專利摘要
本發(fā)明公開一種基于個人信息管理軟件的個人信息管理方法,該方法包括,通過個人信息管理軟件中的鼠標鉤子函數(shù)打破個人信息管理軟件運行進程和系統(tǒng)用于顯示信息的進程的邊界,向用于顯示信息的進程的虛擬地址空間中注入含有截獲功能的代碼,利用該代碼獲得鼠標當前位置上的文本信息;從獲得的文本信息中提取電話號碼;將提取的電話號碼保存至個人信息管理軟件中。應(yīng)用本發(fā)明提供的方法可以大大簡化用戶使用個人信息管理軟件添加新電話號碼的步驟,使用戶可以快捷地保存屏幕上出現(xiàn)的電話號碼并可以直接撥打屏幕上出現(xiàn)的電話號碼,提高了用戶的使用積極性。
文檔編號G06F9/44GK1991749SQ200510137824
公開日2007年7月4日 申請日期2005年12月31日
發(fā)明者梁柱 申請人:騰訊科技(深圳)有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan