欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種輸入法安裝方法及裝置的制作方法

文檔序號(hào):6464858閱讀:204來(lái)源:國(guó)知局
專利名稱:一種輸入法安裝方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及程序安裝領(lǐng)域,特別是涉及一種輸入法安裝方法及裝置。
背景技術(shù)
在目前的計(jì)算機(jī)操作系統(tǒng)環(huán)境下,如在Windows環(huán)境下,輸入法升級(jí)安 裝的原理是
輸入法入口文件ime (也稱為輸入法主文件,如SogouPY.ime )本質(zhì)是一 個(gè)dll文件(dynamic link library,動(dòng)態(tài)鏈接庫(kù)),其對(duì)外提供了各種標(biāo)準(zhǔn)的導(dǎo) 出函數(shù),供操作系統(tǒng)和應(yīng)用程序調(diào)用。Windows要求,已經(jīng)加載到內(nèi)存中(即 被其他應(yīng)用程序調(diào)用而執(zhí)行)的dll所對(duì)應(yīng)的磁盤文件不能被覆蓋。這直接導(dǎo) 致如果輸入法ime文件被加載(即被其他應(yīng)用程序調(diào)用而執(zhí)行),該ime文 件將不可被覆蓋,使得該輸入法的其他版本(例如更新版本)不能被安裝。而 輸入法的特性決定了直到應(yīng)用程序退出前ime文件不會(huì)被卸載。因此,正在運(yùn) 行中的應(yīng)用程序只要加載過(guò)輸入法,該輸入法的后續(xù)版本就無(wú)法安裝。
因此,在輸入法升級(jí)安裝過(guò)程中,即在舊版輸入法未被卸載的情況下安裝 新版輸入法時(shí),新版輸入法如何排除舊版輸入法的影響,是一個(gè)必須解決的問(wèn) 題。
目前比較常見的一種解決方法是
安裝新版輸入法時(shí)4全測(cè)是否有舊版輸入法在運(yùn)行,即4全查正在運(yùn)行的應(yīng)用 程序是否加載了舊版輸入法。如果沒有,則直接進(jìn)行正常的安裝,并且安裝以 后可以立即被應(yīng)用程序調(diào)用執(zhí)行;否則,提示用戶將加載過(guò)舊版輸入法的所有 應(yīng)用程序全部關(guān)閉。如果用戶沒有全部關(guān)閉,則停止安裝過(guò)程;或者,可以繼 續(xù)安裝新版輸入法,但需要重新啟動(dòng)計(jì)算機(jī)后才能使用,因?yàn)榘惭b時(shí)是將新版 安裝需要拷貝的文件放置到了 一個(gè)臨時(shí)目錄中,這些文件需要在系統(tǒng)重啟時(shí)利 用操作系統(tǒng)提供的支持重啟后拷貝文件的功能,拷貝到系統(tǒng)的安裝目錄下,從 而完成安裝。
使用這種安裝方法,如果用戶沒有加載過(guò)輸入法或者能夠關(guān)閉所有加載過(guò)裝,并且安裝后可立即生效使用。但是,由
于輸入法是嵌入其他應(yīng)用程序中運(yùn)行,因此常常存在以下情況
1) 可能有很多應(yīng)用程序都加載過(guò)(舊版)輸入法,而將這些程序——關(guān)
閉會(huì)非常麻煩;
2) 如果用戶正在某應(yīng)用程序中工作,例如書寫文檔、發(fā)郵件、聊天等等, 關(guān)閉該應(yīng)用程序(即關(guān)閉運(yùn)行該應(yīng)用程序的所有窗口)可能會(huì)打斷他的正常工 作,因此用戶可能不愿意退出該程序;
3) 某些應(yīng)用程序退出4艮困難,例如Windows桌面;
4) 如果用戶設(shè)置了默認(rèn)輸入法,任何進(jìn)程的啟動(dòng)都會(huì)加載該輸入法;因 此當(dāng)新版安裝程序檢查到?jīng)]有輸入法在運(yùn)行后,并不能保證安裝前(甚至安裝
種情況,就會(huì)導(dǎo)致安裝不完整。
由于上述原因,用戶4艮少在沒有加載過(guò)輸入法或者能夠關(guān)閉所有加載過(guò)輸 入法的應(yīng)用程序的情況下完成安裝。在多數(shù)情況下,用戶都是在沒有全部關(guān)閉 應(yīng)用程序時(shí)安裝了新版輸入法,因此這種安裝需要等待重啟后才能使用。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種輸入法安裝方法及裝置,以解決現(xiàn) 有的安裝方法在多數(shù)情況下需要重啟后才能使用新安裝的輸入法的問(wèn)題。
為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下 技術(shù)方案
一種輸入法安裝方法,包括
提取待安裝的輸入法版本信息;
創(chuàng)建名稱包含所述版本信息的目錄,并將待安裝的輸入法系統(tǒng)文件拷貝到 該目錄下;
檢查系統(tǒng)目錄中是否存在舊版的輸入法主文件,如果存在,則修改該文件 名,并將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下;如果不存在,則直接 將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下。
優(yōu)選的,如果存在舊版的輸入法主文件,則修改該文件名之后,還包括 在系統(tǒng)重新啟動(dòng)時(shí)刪除所述改名的舊X反llT入法主文件。
5其中,所述創(chuàng)建名稱包含所述版本信息的目錄具體包括接收用戶指定或
系統(tǒng)默i/v的安裝目錄名稱;將所迷版本信息附加到所述安裝目錄名稱中,得到攜帶版本信息的分目錄名稱;在所述安裝目錄下創(chuàng)建以所述分目錄名稱命名的目錄。
優(yōu)選的,所述創(chuàng)建名稱包含所述版本信息的目錄之前,還包括驗(yàn)證名稱包含所述版本信息的目錄是否存在,如果存在,則該版本的輸入法已經(jīng)安裝;如果不存在,則創(chuàng)建名稱包含所述版本信息的目錄。
其中,所述將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下之后,還包括將各版本輸入法公用的數(shù)據(jù)文件和可執(zhí)行代碼拷貝到所述包含版本信息的目錄下。
所述方法還包括當(dāng)應(yīng)用程序調(diào)用已安裝的輸入法創(chuàng)建共享內(nèi)存時(shí),使用包含該輸入法版本信息的名稱命名該共享內(nèi)存。
優(yōu)選的,所述包含版本信息的名稱是經(jīng)過(guò)哈希計(jì)算得到的名稱;其中,所述名稱為目錄的名稱或共享內(nèi)存的名稱。
本發(fā)明還提供了一種輸入法安裝裝置,包括
提取單元,用于提取待安裝的輸入法版本信息;
目錄創(chuàng)建單元,用于創(chuàng)建名稱包含所述版本信息的目錄;
第一安裝單元,用于將待安裝的輸入法系統(tǒng)文件拷貝到該目錄下;
第二安裝單元,用于檢查系統(tǒng)目錄中是否存在舊版的輸入法主文件,如果存在,則修改該文件名,并將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下;如果不存在,則直接將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下。
優(yōu)選的,所述裝置還包括刪除單元,用于在系統(tǒng)重新啟動(dòng)時(shí)刪除所述改名的舊版輸入法主文件。
其中,所述目錄創(chuàng)建單元具體包括接收子單元,用于接收用戶指定或系統(tǒng)默認(rèn)的安裝目錄名稱;命名子單元,用于將所述版本信息附加到所述安裝目錄名稱中,得到攜帶版本信息的分目錄名稱;創(chuàng)建子單元,用于在所述安裝目錄下創(chuàng)建以所述分目錄名稱命名的目錄。
優(yōu)選的,所述裝置還包括驗(yàn)證單元,用于驗(yàn)證名稱包含所述版本信息的目錄是否存在,如果存在,則該版本的輸入法已經(jīng)安裝;如果不存在,則觸發(fā)所述目錄創(chuàng)建單元。
所述裝置還包括第三安裝單元,用于將各版本輸入法公用的數(shù)據(jù)文件和
可執(zhí)行代碼拷貝到所述包含版本信息的目錄下。
所述裝置還包括共享內(nèi)存創(chuàng)建單元,用于當(dāng)應(yīng)用程序調(diào)用已安裝的輸入法創(chuàng)建共享內(nèi)存時(shí),使用包含該輸入法版本信息的名稱命名該共享內(nèi)存。
優(yōu)選的,所述裝置還包括哈希計(jì)算單元,用于對(duì)所述包含版本信息的名稱進(jìn)行哈希計(jì)算;其中,所述名稱為目錄的名稱或共享內(nèi)存的名稱。
根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明具有以下技術(shù)效果
首先,本發(fā)明提供的安裝方法,是將不同版本的輸入法系統(tǒng)文件安裝到不同的目錄中,每個(gè)目錄以版本號(hào)區(qū)分;同時(shí),由于不同版本的輸入法主文件ime只能安裝到指定的相同位置,而已經(jīng)安裝到該位置的ime文件不能被覆蓋,所以通過(guò)修改舊版輸入法主文件的名稱,可以將新版輸入法主文件拷貝到該指定位置,從而完成安裝。這樣,由于ime文件具備版本識(shí)別能力,能夠到不同目錄找到各自版本對(duì)應(yīng)的系統(tǒng)文件,所以新安裝的輸入法不需要重啟就可以立即使用;而且,當(dāng)新舊版本輸入法同時(shí)運(yùn)行時(shí),新舊輸入法不會(huì)互相干擾。
其次,所述安裝方法不要求用戶關(guān)閉其他加載過(guò)輸入法的應(yīng)用程序,從而避免干擾用戶的正常工作,大大方便了用戶;也避免了用戶在無(wú)法關(guān)閉某些程序時(shí)必須重啟的困難。而且,安裝過(guò)程中不需要對(duì)舊版輸入法是否被加載進(jìn)行檢測(cè),從而徹底避免了因錯(cuò)誤檢測(cè)而導(dǎo)致的不可靠。對(duì)于加載過(guò)舊版輸入法的應(yīng)用程序,用戶可以自由選擇繼續(xù)使用舊版輸入法,也可以重新啟動(dòng)該程序從而加載新版輸入法,這一點(diǎn)對(duì)于某些較少使用輸入法并且關(guān)閉非常困難的應(yīng)用程序(例如Windows桌面)提供了很大的便利。
再次,輸入法涉及大量的進(jìn)程間數(shù)據(jù)共享,需要用到共享內(nèi)存。本發(fā)明當(dāng)應(yīng)用程序調(diào)用已安裝的輸入法創(chuàng)建共享內(nèi)存時(shí),使用包含該輸入法版本信息的名稱命名該共享內(nèi)存。這樣,當(dāng)新舊版本的輸入法同時(shí)運(yùn)行時(shí),就會(huì)找到各自版本對(duì)應(yīng)的內(nèi)存進(jìn)行訪問(wèn),從而使得不同版本間的輸入法不會(huì)互相干擾,而相同版本間的輸入法通過(guò)同一塊共享內(nèi)存可以自由通信。


7圖1是本發(fā)明實(shí)施例一所述一種輸入法安裝流程圖;圖2是本發(fā)明實(shí)施例二所述一種完整的輸入法安裝流程圖;圖3是本發(fā)明實(shí)施例所述命名共享內(nèi)存的流程圖;圖4是本發(fā)明實(shí)施例所述一種輸入法安裝裝置結(jié)構(gòu)圖;圖5是本發(fā)明另一實(shí)施例所述一種輸入法安裝裝置結(jié)構(gòu)圖。
具體實(shí)施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
針對(duì)輸入法升級(jí)安裝過(guò)程中ime文件不能被覆蓋的問(wèn)題,現(xiàn)有技術(shù)的解決思路是創(chuàng)造一個(gè)沒有舊版輸入法運(yùn)行的環(huán)境,例如,卸載舊版輸入法,或者重啟搶在舊版輸入法加載之前等等。而本發(fā)明改變這種解決思路,提出了一種創(chuàng)新的思路,即如果新舊版本輸入法能夠同時(shí)運(yùn)行,就能夠讓新版輸入法隨時(shí)安裝并立即生效。因此,本發(fā)明需要解決的問(wèn)題是,如何做到不同版本的輸入法之間不會(huì)互相干擾。下面通過(guò)實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
實(shí)施例一
參照?qǐng)D1,是實(shí)施例一所述一種輸入法安裝流程圖。安裝的主要步驟包括S101 ,提取待安裝的l餘入法版本信息;
從輸入法安裝程序中提取出當(dāng)前要安裝的輸入法版本信息,如版本號(hào)。S102,創(chuàng)建名稱包含所述版本信息的目錄;
創(chuàng)建一個(gè)以版本信息區(qū)分的目錄,通常安裝程序都允許用戶指定安裝目錄,如果用戶沒有指定,則安裝到系統(tǒng)默認(rèn)的目錄下。本實(shí)施例采用的創(chuàng)建方法^口下
1 )接收用戶指定或系統(tǒng)默認(rèn)的安裝目錄名稱,例如,C:\programfiles\SogouInput,這個(gè)目錄稱為主目錄;
2) 將所述版本信息附加到所述安裝目錄名稱中,得到攜帶纟反本信息的分目錄名稱;例如,對(duì)于版本1.0,分目錄名稱為C:\program files\SogouInput\vl.O;
3) 在所述安裝目錄下創(chuàng)建以所述分目錄名稱命名的目錄,即創(chuàng)建分目錄C:\program files\SogouInput\vl .0。
S103,將待安裝的輸入法系統(tǒng)文件拷貝到該分目錄下;根據(jù)預(yù)置的文件列表,將輸入法系統(tǒng)文件拷貝到所創(chuàng)建的目錄中。如果需要,在該分目錄下還可以包括子目錄,例如輸入法皮膚文件的目錄等。
S104 ,檢查系統(tǒng)目錄(例如,C:\Windows\System32 )中是否存在舊版的輸入法主文件ime,如果存在,則修改該文件名,并將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下;如果不存在,則直接將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下。
輸入法主文件ime的安裝不同于上述系統(tǒng)文件的安裝,由于操作系統(tǒng)的限制,ime文件只能放置在系統(tǒng)指定的位置(即上述的系統(tǒng)目錄),因此不同版本的ime文件必須放在相同的位置。但是,已經(jīng)安裝到該位置的舊版ime文件不能被覆蓋,這樣就導(dǎo)致新版ime文件無(wú)法安裝。針對(duì)所述問(wèn)題,操作系統(tǒng)提供了 "改名覆蓋"的機(jī)制,可以通過(guò)改名的方式將新版ime文件拷貝到該指定位置,而舊版ime文件被改成一個(gè)隨機(jī)的名稱,以確保不會(huì)有其他文件試圖去覆蓋它。
優(yōu)選的,所述已改名的舊版ime文件由于被操作系統(tǒng)保護(hù),不能立刻被刪除,本實(shí)施例可以設(shè)置為重啟后刪除(該功能由操作系統(tǒng)提供)。刪除以后,系統(tǒng)中就不會(huì)有舊版輸入法運(yùn)行。
上述處理是針對(duì)系統(tǒng)中存在舊版輸入法時(shí)安裝新版輸入法的處理,如果系統(tǒng)中沒有安裝舊版輸入法,則當(dāng)前安裝的輸入法主文件ime可以直接安裝到系統(tǒng)指定的位置。當(dāng)然,本發(fā)明并不限定第一次安裝輸入法的時(shí)候必須按照本發(fā)明所述的方式(參照?qǐng)D1流程)安裝,本發(fā)明主要適用于系統(tǒng)已安裝舊版輸入法后進(jìn)行升級(jí)安裝的情況。
按照上述流程安裝新版輸入法后,由于ime文件具備版本識(shí)別能力,能夠到不同目錄找到各自版本對(duì)應(yīng)的系統(tǒng)文件,所以新安裝的輸入法不需要重啟就可以立即使用。因此,在計(jì)算才幾重啟之前,新啟動(dòng)的應(yīng)用程序?qū)⒓虞d新版輸入
到該應(yīng)用程序關(guān)閉。這樣,在計(jì)算機(jī)重啟之前,存在新舊輸入法同時(shí)運(yùn)行的情況,但由于不同版本的輸入法安裝到不同的目錄中,ime文件能夠到不同版本的目錄中查找各自版本對(duì)應(yīng)的系統(tǒng)文件,所以新舊輸入法不會(huì)互相干擾。
而且,所述安裝方法不要求用戶關(guān)閉其他加載過(guò)輸入法的應(yīng)用程序,從而避免干擾用戶的正常工作,大大方便了用戶;也避免了用戶在無(wú)法關(guān)閉某些程 序時(shí)必須重啟的困難。對(duì)于加載過(guò)舊版輸入法的應(yīng)用程序,用戶可以自由選擇 繼續(xù)使用舊版輸入法,也可以重新啟動(dòng)該程序從而加載新版輸入法,這一點(diǎn)對(duì) 于某些較少使用輸入法并且關(guān)閉非常困難的應(yīng)用程序(例如Windows桌面) 提供了很大的便利。
并且,安裝過(guò)程中不需要對(duì)舊版輸入法是否被力。載進(jìn)行檢測(cè),從而徹底避 免了因錯(cuò)誤檢測(cè)而導(dǎo)致的不可靠。而現(xiàn)有技術(shù)中檢測(cè)是否有舊版輸入法運(yùn)行非 常困難 一方面,雖然操作系統(tǒng)提供了識(shí)別某些dll文件被哪些應(yīng)用程序加載 的方法,但這種識(shí)別仍然可能因?yàn)闄?quán)限等問(wèn)題發(fā)生錯(cuò)誤,而且除了dll需要被 識(shí)別,其他可4丸行代碼dll、 exe以及數(shù)據(jù)文件也需要識(shí)別其被哪些應(yīng)用程序加 載;另一方面,即使理論上存在識(shí)別的方法,由于任何文件都可能影響輸入法 的安裝,因此安裝程序需要維護(hù)一個(gè)識(shí)別列表以確定需要識(shí)別哪些文件,而維 護(hù)這個(gè)列表不僅需要額外的工作量,而且也因其可能發(fā)生的錯(cuò)誤而增加潛在的 不穩(wěn)定性。但本發(fā)明由于避免了這樣的檢測(cè)過(guò)程,所以比現(xiàn)有的安裝方法更可 靠
實(shí)施例二
本實(shí)施例纟是供了 一種完整的輸入法安裝流程。
參照?qǐng)D2,是實(shí)施例二所述一種完整的輸入法安裝流程圖。
S201,提取待安裝的輸入法版本信息;
S202,驗(yàn)證名稱包含所述版本信息的目錄是否存在,如果存在,則該版本 的輸入法已經(jīng)安裝;如果不存在,則繼續(xù)S203;
為了保證安裝的可靠性以及系統(tǒng)的穩(wěn)定性,增加本步驟來(lái)進(jìn)行驗(yàn)證。如果 系統(tǒng)中的舊版輸入法與當(dāng)前待安裝的輸入法是同一版本,則可以停止安裝過(guò) 程,或者設(shè)置為其他處理(如跳過(guò)目錄創(chuàng)建步驟,直接轉(zhuǎn)到S204)。如果是不 同版本的輸入法,則繼續(xù)安裝過(guò)程。
S203,創(chuàng)建名稱包含所述版本信息的目錄;
S204,將待安裝的輸入法系統(tǒng)文件拷貝到該目錄下;
同樣為了保證安裝的可靠性以及系統(tǒng)的穩(wěn)定性,可以在拷貝前增加一個(gè)驗(yàn)
10證環(huán)節(jié),驗(yàn)證該目錄下是否由于出錯(cuò)而已經(jīng)存在了相同的系統(tǒng)文件,如果存在, 則報(bào)告安裝錯(cuò)誤。
5205, 檢查系統(tǒng)目錄(例如,C:\Windows\System32)中是否存在舊版的 輸入法主文件ime,如果存在,則修改該文件名,并將待安裝的輸入法主文件 拷貝到所述系統(tǒng)目錄下;如果不存在,則直接將待安裝的輸入法主文件拷貝到 所述系統(tǒng)目錄下;
優(yōu)選的,在系統(tǒng)重新啟動(dòng)時(shí)刪除所述改名的舊;f反輸入法主文件。
5206, 將各版本輸入法公用的數(shù)據(jù)文件和可執(zhí)行代碼(如卸載程序)拷貝 到所述包含版本信息的目錄下。當(dāng)然,也可以拷貝到其他存儲(chǔ)位置。
新版輸入法安裝成功后,輸入法的運(yùn)行會(huì)涉及大量的進(jìn)程間數(shù)據(jù)共享,這 時(shí)需要用到內(nèi)核對(duì)象,例如共享內(nèi)存。下面首先介紹共享內(nèi)存的使用
了實(shí)現(xiàn)數(shù)據(jù)共享,操作系統(tǒng)提供了共享內(nèi)存機(jī)制來(lái)幫助應(yīng)用程序?qū)崿F(xiàn)進(jìn)程間的 數(shù)據(jù)共享。為了識(shí)別不同的共享內(nèi)存,在申請(qǐng)創(chuàng)建共享內(nèi)存塊時(shí),需要傳入一 個(gè)應(yīng)用程序約定好的名稱。如果兩個(gè)進(jìn)程用相同的名稱各自創(chuàng)建了 一塊共享內(nèi) 存,則這兩塊內(nèi)存實(shí)際是同一塊內(nèi)存; 一個(gè)進(jìn)程向該內(nèi)存塊寫入的數(shù)據(jù),另一 個(gè)進(jìn)程可以直接讀出。
基于以上介紹,當(dāng)新舊版本的輸入法同時(shí)運(yùn)行時(shí),如果使用了完全相同的 名稱創(chuàng)建共享內(nèi)存,會(huì)導(dǎo)致不同版本輸入法訪問(wèn)同一塊內(nèi)存。由于不同版本輸 入法對(duì)該內(nèi)存塊的格式要求可能會(huì)發(fā)生變化,所以輸入法的穩(wěn)定性會(huì)受到嚴(yán)重 影響。
如果希望新舊版本輸入法能夠同時(shí)運(yùn)行,需要在創(chuàng)建共享內(nèi)存時(shí)為不同的 版本指定不同的名稱。根據(jù)上述的安裝思路,只需把版本號(hào)信息加入共享內(nèi)存 的名稱就可以實(shí)現(xiàn),從而使得同一版本內(nèi)部通過(guò)同一塊共享內(nèi)存仍然可以自由 交換數(shù)據(jù),但不同版本之間不會(huì)出現(xiàn)相互干擾。
參照?qǐng)D3,是實(shí)施例所述命名共享內(nèi)存的流程圖,以安裝的版本號(hào)為1.0 為例。
S301,對(duì)于為實(shí)現(xiàn)特定功能而創(chuàng)建的共享內(nèi)存,為該共享內(nèi)存預(yù)置一個(gè)名稱,例如"ShareMem—SogouPY,,;
S302 , 將該共享內(nèi)存名稱后面附加版本信息,例如 "ShareMem—SogouPY—1.0";
S303,使用附加版本信息的共享內(nèi)存名稱("ShareMem—SogouPY—1.0") 創(chuàng)建命名共享內(nèi)存;
S304,如果共享內(nèi)存創(chuàng)建成功,則使用該共享內(nèi)存。
這樣,當(dāng)應(yīng)用程序調(diào)用已安裝的輸入法創(chuàng)建共享內(nèi)存時(shí),使用包含該輸入 法版本信息的名稱命名該共享內(nèi)存。當(dāng)新舊版本的輸入法同時(shí)運(yùn)行時(shí),就會(huì)找 到各自版本對(duì)應(yīng)的內(nèi)存進(jìn)行訪問(wèn),從而使得不同版本間的輸入法不會(huì)互相干 擾,而相同版本間的輸入法通過(guò)同一塊共享內(nèi)存可以自由通信。
此外,其他內(nèi)核對(duì)象,例如管道(Pipe,用于進(jìn)程間的數(shù)據(jù)傳輸)、互斥 量(Mutex,用于進(jìn)/線程同步)等等,都可以通過(guò)這種在名稱中加入版本信息 的方式實(shí)現(xiàn)不同版本互不干擾。
某些數(shù)值型對(duì)象,例如TCP端口,也可以通過(guò)間接地方式加入版本信息。 應(yīng)用程序可能使用向指定TCP端口寫數(shù)據(jù)的方式進(jìn)行通信,該端口號(hào)可以包 含版本信息。例如,使用一個(gè)內(nèi)部版本流水號(hào),實(shí)際使用的端口號(hào)為在一個(gè)基 數(shù)的基礎(chǔ)上加上該版本流水號(hào)。其中,所述間接的方式是指可以將版本信息 轉(zhuǎn)換成字符串附加到主名稱后面,例如將版本號(hào)1.0變成字符串"1.0";也可 以將運(yùn)算結(jié)果轉(zhuǎn)換成字符串,例如將版本號(hào)l.O放大IO倍變成"10",當(dāng)然也 可放大20倍得到20;還可以是其他處理,在此不再列舉。
本發(fā)明優(yōu)選的,對(duì)于上述附加版本信息的各種名稱,例如目錄名稱、內(nèi)核 對(duì)象名稱等,為了避免名稱太長(zhǎng),可以用哈希(hash)計(jì)算的方式對(duì)名稱進(jìn)行 散列,從而獲得一個(gè)較短的名稱,或者將字符形式的名稱散列為一個(gè)指定區(qū)間 內(nèi)的數(shù)字。如果散列函數(shù)選擇恰當(dāng),能夠保證包含不同版本信息的名稱字符串 得到不同的hash結(jié)果。
針對(duì)上述方法實(shí)施例的說(shuō)明,本發(fā)明還提供了相應(yīng)的安裝系統(tǒng)實(shí)施例。參 照?qǐng)D4,是實(shí)施例所述一種輸入法安裝裝置結(jié)構(gòu)圖。所述裝置主要包括 提取單元U41,用于提取待安裝的輸入法版本信息;目錄創(chuàng)建單元U42,用于創(chuàng)建名稱包含所述版本信息的目錄; 第一安裝單元U43,用于將待安裝的輸入法系統(tǒng)文件拷貝到該目錄下; 第二安裝單元U44,用于檢查系統(tǒng)目錄中是否存在舊版的輸入法主文件 ime,如果存在,則修改該文件名,并將待安裝的輸入法主文件拷貝到所述系 統(tǒng)目錄下;如果不存在,則直接將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄 下。
其中,所述目錄創(chuàng)建單元U42具體包括 接收子單元,用于接收用戶指定或系統(tǒng)默認(rèn)的安裝目錄名稱; 命名子單元,用于將所述版本信息附加到所述安裝目錄名稱中,得到攜帶 版本信息的分目錄名稱;
創(chuàng)建子單元,用于在所述安裝目錄下創(chuàng)建以所述分目錄名稱命名的目錄。 所述裝置能夠?qū)⒉煌姹镜妮斎敕ㄏ到y(tǒng)文件安裝到不同的目錄中,每個(gè)目 錄以版本號(hào)區(qū)分;同時(shí),通過(guò)修改舊版輸入法主文件的名稱,可以將新版輸入 法主文件拷貝到指定的位置,從而完成安裝。這樣,由于ime文件具備版本識(shí) 別能力,能夠到不同目錄找到各自版本對(duì)應(yīng)的系統(tǒng)文件,所以新安裝的輸入法 不需要重啟就可以立即使用;而且,當(dāng)新舊版本輸入法同時(shí)運(yùn)行時(shí),新舊輸入 法不會(huì)互相干擾。
基于上述裝置實(shí)施例,本發(fā)明還提供了另一裝置實(shí)施例。參照?qǐng)D5,是所 述裝置的結(jié)構(gòu)圖。所述裝置除包括提取單元U51、目錄創(chuàng)建單元U52、第一安 裝單元U53、第二安裝單元U54,還包括以下單元
刪除單元U55,用于在系統(tǒng)重新啟動(dòng)時(shí)刪除所述改名的舊版輸入法主文件。
驗(yàn)證單元U56,用于驗(yàn)證名稱包含所述版本信息的目錄是否存在,如果存 在,則該版本的輸入法已經(jīng)安裝;如果不存在,則觸發(fā)所述目錄創(chuàng)建單元U52, 從而保證安裝的可靠性以及系統(tǒng)的穩(wěn)定性。
第三安裝單元U57,用于將各版本輸入法公用的數(shù)據(jù)文件和可執(zhí)行代碼拷 貝到所述包含版本信息的目錄下。當(dāng)然,也可以拷貝到其他存儲(chǔ)位置。
共享內(nèi)存創(chuàng)建單元U58,用于當(dāng)應(yīng)用程序調(diào)用已安裝的輸入法創(chuàng)建共享內(nèi) 存時(shí),使用包含該輸入法版本信息的名稱命名該共享內(nèi)存。此外,該單元還可以對(duì)其他內(nèi)核對(duì)象或數(shù)值型對(duì)象進(jìn)行附加版本信息的命名。
哈希計(jì)算單元U59,用于對(duì)附加版本信息的各種名稱進(jìn)行哈希計(jì)算,例如
目錄名稱或共享內(nèi)存名稱等,避免命名名稱太長(zhǎng)。
需要說(shuō)明的是,全文所述的"新版輸入法"和"舊版輸入法"不是按版本 的高低級(jí)別進(jìn)行劃分,而是按安裝的先后順序進(jìn)行的劃分。所以,"新版輸入 法,,可能比"舊版輸入法"的版本級(jí)別低,這種情況并不影響本發(fā)明上述各實(shí)
施例的成立。
圖4、圖5所示裝置中未詳述的部分可以參見圖1、圖2、圖3所示方法 的相關(guān)部分,為了篇幅考慮,在此不再詳述。
以上對(duì)本發(fā)明所提供的一種輸入法安裝方法及系統(tǒng),進(jìn)行了詳細(xì)介紹,本
明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技 術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處。 綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
1權(quán)利要求
1、一種輸入法安裝方法,其特征在于,包括提取待安裝的輸入法版本信息;創(chuàng)建名稱包含所述版本信息的目錄,并將待安裝的輸入法系統(tǒng)文件拷貝到該目錄下;檢查系統(tǒng)目錄中是否存在舊版的輸入法主文件,如果存在,則修改該文件名,并將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下;如果不存在,則直接將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,如果存在舊版的輸入法主 文件,則修改該文件名之后,還包括在系統(tǒng)重新啟動(dòng)時(shí)刪除所述改名的舊版輸入法主文件。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建名稱包含所述版 本信息的目錄具體包括接收用戶指定或系統(tǒng)默認(rèn)的安裝目錄名稱;將所述版本信息附加到所述安裝目錄名稱中,得到攜帶版本信息的分目錄 名稱;在所述安裝目錄下創(chuàng)建以所述分目錄名稱命名的目錄。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建名稱包含所述版 本信息的目錄之前,還包括驗(yàn)證名稱包含所述版本信息的目錄是否存在,如果存在,則該版本的輸入 法已經(jīng)安裝;如果不存在,則創(chuàng)建名稱包含所述版本信息的目錄。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將待安裝的輸入法主 文件拷貝到所述系統(tǒng)目錄下之后,還包括將各版本輸入法公用的數(shù)據(jù)文件和可執(zhí)行代碼拷貝到所述包含版本信息 的目錄下。
6、 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 當(dāng)應(yīng)用程序調(diào)用已安裝的輸入法創(chuàng)建共享內(nèi)存時(shí),使用包含該輸入法版本信息的名稱命名該共享內(nèi)存。
7、 根據(jù)權(quán)利要求1或6所述的方法,其特征在于所述包含版本信息的名稱是經(jīng)過(guò)哈希計(jì)算得到的名稱;其中,所述名稱為目錄的名稱或共享內(nèi)存的名稱。
8、 一種輸入法安裝裝置,其特征在于,包括 提取單元,用于提取待安裝的輸入法版本信息;目錄創(chuàng)建單元,用于創(chuàng)建名稱包含所述版本信息的目錄; 第一安裝單元,用于將待安裝的輸入法系統(tǒng)文件拷貝到該目錄下; 第二安裝單元,用于檢查系統(tǒng)目錄中是否存在舊版的輸入法主文件,如果存在,則修改該文件名,并將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下; 如果不存在,則直接將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 刪除單元,用于在系統(tǒng)重新啟動(dòng)時(shí)刪除所述改名的舊版輸入法主文件。
10、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述目錄創(chuàng)建單元具體包括接收子單元,用于接收用戶指定或系統(tǒng)默認(rèn)的安裝目錄名稱; 命名子單元,用于將所述版本信息附加到所述安裝目錄名稱中,得到攜帶 版本信息的分目錄名稱;創(chuàng)建子單元,用于在所述安裝目錄下創(chuàng)建以所述分目錄名稱命名的目錄。
11、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 驗(yàn)證單元,用于驗(yàn)證名稱包含所述版本信息的目錄是否存在,如果存在,則該版本的輸入法已經(jīng)安裝;如果不存在,則觸發(fā)所述目錄創(chuàng)建單元。
12、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 第三安裝單元,用于將各版本輸入法公用的數(shù)據(jù)文件和可執(zhí)行代碼拷貝到所述包含版本信息的目錄下。
13、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 共享內(nèi)存創(chuàng)建單元,用于當(dāng)應(yīng)用程序調(diào)用已安裝的輸入法創(chuàng)建共享內(nèi)存時(shí),使用包含該輸入法版本信息的名稱命名該共享內(nèi)存。
14、 根據(jù)權(quán)利要求8或13所述的裝置,其特征在于,所述裝置還包括 哈希計(jì)算單元,用于對(duì)所述包含版本信息的名稱進(jìn)行哈希計(jì)算;其中,所述名稱為目錄的名稱或共享內(nèi)存的名稱。
全文摘要
本發(fā)明公開了一種輸入法安裝方法及裝置,以解決現(xiàn)有的安裝方法在多數(shù)情況下需要重啟后才能使用新安裝的輸入法的問(wèn)題。所述方法包括提取待安裝的輸入法版本信息;創(chuàng)建名稱包含所述版本信息的目錄,并將待安裝的輸入法系統(tǒng)文件拷貝到該目錄下;檢查系統(tǒng)目錄中是否存在舊版的輸入法主文件,如果存在,則修改該文件名,并將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下;如果不存在,則直接將待安裝的輸入法主文件拷貝到所述系統(tǒng)目錄下。所述方法使新安裝的輸入法不需要重啟就可以立即使用;而且,當(dāng)新舊版本輸入法同時(shí)運(yùn)行時(shí),新舊輸入法不會(huì)互相干擾。
文檔編號(hào)G06F9/445GK101510157SQ20081011959
公開日2009年8月19日 申請(qǐng)日期2008年9月3日 優(yōu)先權(quán)日2008年9月3日
發(fā)明者貝 李, 磊 楊 申請(qǐng)人:北京搜狗科技發(fā)展有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
麦盖提县| 新建县| 庆阳市| 黎平县| 新民市| 西安市| 桑日县| 布尔津县| 封开县| 白沙| 桦甸市| 沅陵县| 遂川县| 淳安县| 呼伦贝尔市| 孟连| 寿光市| 岢岚县| 织金县| 扬州市| 阿克苏市| 高州市| 二连浩特市| 临泽县| 江源县| 柞水县| 玛曲县| 九龙城区| 汶川县| 大邑县| 中江县| 锦州市| 博爱县| 丰原市| 郸城县| 华蓥市| 平远县| 广东省| 宜宾市| 衡南县| 漳州市|