一種強(qiáng)力卸載軟件的方法及系統(tǒng)的制作方法
【專利說明】一種強(qiáng)力卸載軟件的方法及系統(tǒng)
[0001]本發(fā)明專利申請是申請日為2011年01月04日、申請?zhí)枮?01110005069.X、名稱為“一種強(qiáng)力卸載軟件的方法及系統(tǒng)”的中國發(fā)明專利申請的分案申請。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及軟件卸載技術(shù)領(lǐng)域,尤其涉及一種強(qiáng)力卸載軟件的方法和系統(tǒng)。
【背景技術(shù)】
[0003]隨著計算機(jī)與互聯(lián)網(wǎng)技術(shù)的發(fā)展,各種應(yīng)用軟件也層出不窮。大部分的軟件在安裝時都非常容易和友好,但在卸載時,有些軟件出于某種目的或自身的不規(guī)范,常常無法徹底的從用戶電腦中卸載刪除,并殘留下大量垃圾文件,為用戶造成了很大的困擾,同時也影響了計算機(jī)的性能。
[0004]而解決此一問題的方法,目前只能因軟件類型而異。由于每款軟件都有其自身的編寫特點(diǎn)和安裝過程,因此其殘留文件的方式和位置也各不相同,這就導(dǎo)致了解決此問題的方式大都相當(dāng)個性化。例如,針對某款軟件的卸載殘留問題,有人總結(jié)出,可先進(jìn)入安全模式,然后進(jìn)入注冊表,查看特定的鍵值,之后再刪除特定的安裝目錄;而對于另一款軟件的殘留,則需要在命令行中執(zhí)行特定的命令。但是這些方式,不僅需要對計算機(jī)知識具有相當(dāng)?shù)牧私猓乙坏┥杂惺д`,就會對計算機(jī)的運(yùn)行或安全造成極大的損害。
[0005]總之,目前對于無法徹底從用戶電腦中卸載的軟件,缺乏一種簡單、統(tǒng)一的解決之道,尤其對于那些對電腦的使用不是特別熟練的用戶來說,不僅對于常規(guī)卸載過程中的層層選擇感到茫然和畏懼,尤其對那些不能完全卸載刪除的軟件,更是素手無策。
[0006]因此,如何提供一種強(qiáng)力卸載軟件的方法和系統(tǒng),使用戶可簡便、徹底的卸載軟件,已經(jīng)成為業(yè)界亟待解決的問題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明所要解決的技術(shù)問題在于提供一種強(qiáng)力卸載軟件的方法和系統(tǒng),以使用戶簡便、徹底的卸載本機(jī)安裝軟件。
[0008]為解決上述技術(shù)問題,本發(fā)明提供一種強(qiáng)力卸載軟件的方法,包括如下步驟:
[0009]在客戶端檢測本機(jī)已安裝的軟件,包括軟件名稱及版本信息,為每款已安裝軟件提供對應(yīng)的卸載提不;
[0010]當(dāng)偵測到用戶根據(jù)所述卸載提示選擇了某款軟件的卸載操作后,根據(jù)該軟件的名稱和版本,從數(shù)據(jù)文件中獲得預(yù)置的與該軟件對應(yīng)的安裝信息,所述安裝信息包括該軟件在安裝過程中添加的文件,以及對注冊表和/或系統(tǒng)文件的修改;
[0011]根據(jù)所述對應(yīng)的安裝信息,將該軟件在安裝過程中添加的文件以及對注冊表和/或系統(tǒng)文件的修改進(jìn)行刪除或恢復(fù)。
[0012]本發(fā)明進(jìn)而還提供一種強(qiáng)力卸載軟件的系統(tǒng),包括:
[0013]數(shù)據(jù)模塊,用于存儲不同軟件的安裝信息,所述安裝信息包括軟件名稱及版本,添加的文件,以及對注冊表和/或系統(tǒng)文件的修改;
[0014]檢測模塊,用于在客戶端檢測本機(jī)已安裝的軟件,包括軟件名稱和版本信息,為每款已安裝軟件提供對應(yīng)的卸載提示;
[0015]偵測模塊,用于偵測用戶是否根據(jù)所述卸載提示選擇了某款軟件的卸載操作;
[0016]信息獲取模塊,用于當(dāng)偵測到用戶根據(jù)所述卸載提示選擇了某款軟件的卸載操作后,根據(jù)該軟件的名稱和版本,從數(shù)據(jù)模塊中獲得與該軟件對應(yīng)的安裝信息;
[0017]卸載模塊,用于根據(jù)該對應(yīng)的安裝信息,將該軟件在安裝過程中添加的文件以及對注冊表和/或系統(tǒng)文件的修改進(jìn)行刪除或恢復(fù)。
[0018]其中,所述數(shù)據(jù)模塊可以位于客戶端本機(jī)或遠(yuǎn)程服務(wù)器。
[0019]本發(fā)明無需占用過多客戶端資源,也無需用戶針對不同軟件執(zhí)行不同的卸載操作,為用戶提供了一種簡便、統(tǒng)一而且徹底的軟件卸載機(jī)制。本發(fā)明不僅適用于桌面計算機(jī)終端,而且也適用于手機(jī)等其他移動客戶端。
【附圖說明】
[0020]圖1為根據(jù)本發(fā)明實施例所述的強(qiáng)力卸載軟件的方法流程圖。
[0021]圖2為根據(jù)本發(fā)明實施例所述的強(qiáng)力卸載軟件的系統(tǒng)示意圖。
[0022]圖3為根據(jù)本發(fā)明實施例所述的卸載模塊的結(jié)構(gòu)示意圖。
[0023]圖4為根據(jù)本發(fā)明另一實施例所述的卸載模塊的結(jié)構(gòu)示意圖。
[0024]圖5為根據(jù)本發(fā)明又一實施例所述的卸載模塊的結(jié)構(gòu)示意圖。
【具體實施方式】
[0025]下面結(jié)合附圖,對本發(fā)明的實施例進(jìn)行詳細(xì)說明。
[0026]如圖1所示,為根據(jù)本發(fā)明實施例所述的強(qiáng)力卸載軟件的方法流程圖,首先在客戶端檢測本機(jī)已安裝的軟件,包括軟件名稱及版本信息,為每款已安裝軟件提供對應(yīng)的卸載提示(步驟101);當(dāng)偵測到用戶根據(jù)所述卸載提示選擇了某款軟件的卸載操作后,根據(jù)該軟件的名稱和版本,從數(shù)據(jù)文件中獲得預(yù)置的與該軟件對應(yīng)的安裝信息,所述安裝信息包括該軟件在安裝過程中添加的文件,以及對注冊表和/或系統(tǒng)文件的修改(步驟102);之后根據(jù)所述對應(yīng)的安裝信息,將該軟件在安裝過程中添加的文件以及對注冊表和/或系統(tǒng)文件的修改進(jìn)行刪除或恢復(fù)(步驟103)。
[0027]所述數(shù)據(jù)文件可以是數(shù)據(jù)庫的形式,也可以是列表或文本等信息格式。根據(jù)本發(fā)明的實施例,數(shù)據(jù)文件可以是位于客戶端本機(jī),也可以位于遠(yuǎn)程服務(wù)器。下面是以數(shù)據(jù)庫形式進(jìn)行實例說明。
[0028]客戶端軟件的安裝過程,是可以通過一個長期駐留在客戶端機(jī)器中的程序來監(jiān)測的,將軟件安裝行為一一記錄下來,但這種方式占用了客戶端的資源,會影響用戶體驗,因此,本發(fā)明優(yōu)選采用的方式是事先對軟件的安裝過程進(jìn)行模擬和分析后,確定出該軟件的安裝信息,并將該安裝信息存儲于一數(shù)據(jù)庫中。
[0029]所述安裝信息的確定,可以包括例如該軟件是否是強(qiáng)制安裝于C盤還是可選擇安裝于其他盤符下,會建立怎樣的文件目錄和路徑,安裝過程會釋放哪些文件,對注冊表項或系統(tǒng)文件進(jìn)行了哪些修改等,這些安裝信息都可以事先收集確定出來。之后,可以在服務(wù)器端構(gòu)建一數(shù)據(jù)庫,將不同軟件的安裝信息匯總存儲于數(shù)據(jù)庫中。
[0030]本發(fā)明并不干涉客戶端用戶的卸載選擇,如果用戶選擇直接通過軟件自身帶有的卸載程序來執(zhí)行卸載也是可以的,但由于僅執(zhí)行這種常規(guī)卸載常常會發(fā)生卸載不徹底的情況,因此,本發(fā)明還是推薦用戶使用本發(fā)明的卸載方式進(jìn)行軟件卸載。
[0031]當(dāng)用戶選擇使用本發(fā)明提供的卸載方式進(jìn)行軟件卸載的時候,本發(fā)明會通過掃描檢測出本機(jī)已經(jīng)安裝的軟件,優(yōu)選的,可進(jìn)一步列出一已安裝軟件的列表,并為每款已安裝軟件提供一卸載提示,例如可以是一個按鈕,上面寫有“強(qiáng)力卸載”字樣。
[0032]接下來,可偵測用戶是否按下了“強(qiáng)力卸載”按鈕,如果有對應(yīng)按鈕被選擇,則說明用戶希望卸載該軟件。但有些軟件在卸載時,可能由于正在被其他程序所占用,因此可能導(dǎo)致無法正常刪除,這也是導(dǎo)致無法徹底卸載軟件的一個重要原因之一。
[0033]針對這種情況,根據(jù)本發(fā)明的實施例,當(dāng)偵測到用戶選擇了某款軟件的卸載操作后,可以通過執(zhí)行常規(guī)卸載過程來刪除有關(guān)文件,或直接進(jìn)行文件刪除,或先執(zhí)行常規(guī)卸載再刪除殘留文件,不管采用哪種方式,在執(zhí)行刪除動作之前,都可以首先判斷該軟件文件是否正在被其他某個程序所占用,如果是,則解除該欲卸載的軟件文件與該占用程序之間的鎖定。
[0034]關(guān)于解除鎖定的方式,可以是通過進(jìn)程掃描,強(qiáng)制關(guān)閉該占用程序,終止其進(jìn)程或服務(wù)等方式實現(xiàn)。
[0035]當(dāng)解除了與占用程序之間的鎖定之后,即可正常刪除文件了,但具體應(yīng)該刪除哪些文件,則需要根據(jù)與該軟件相對應(yīng)的安裝信息來確定。安裝信息中記載了該軟件在安裝過程中曾經(jīng)釋放的文件,以及對注冊表和系統(tǒng)文件所作的修改,因此,只要按照安裝信息中的記錄,執(zhí)行反安裝過程即可。
[0036]但有一個問題應(yīng)該注意,安裝信息中,有些是固定的,例如對注冊表項的修改,但有些是允許用戶選擇的,例如安裝盤符和目錄,對于允許用戶選擇的內(nèi)容,可以通過執(zhí)行一個掃描搜索過程來確定在具體客戶端中具體的安裝位置,確定具體安裝位置以后即可進(jìn)行文件的反安裝過程。當(dāng)然,也可以將可能的安裝文件目錄信息放入安裝信息中,并據(jù)此執(zhí)行掃描過程。
[0037]如果數(shù)據(jù)庫位于遠(yuǎn)程服務(wù)器時,客戶端從數(shù)據(jù)庫獲得安裝信息的方式,可以有多種,例如,當(dāng)執(zhí)行卸載前,首先由客戶端向服務(wù)器請求與該軟件名稱和版本相對應(yīng)的安裝信息;服務(wù)器收到該請求后,將該軟件的安裝信息發(fā)送至該客戶端。但這種方式要求客戶端在執(zhí)行卸載時必須要與服務(wù)器端聯(lián)機(jī)在線,對當(dāng)時的使用環(huán)境有一些限制。
[0038]為此,根據(jù)本發(fā)明的另一個實施例,還可以是事先由客戶端定期將本機(jī)已安裝軟件的名稱和版本信息告知服務(wù)器;服務(wù)器將與該客戶端已安裝軟件對應(yīng)的安裝信息發(fā)送至客戶端存儲。這樣當(dāng)客戶端執(zhí)行卸載時,即使未在線,也可以直接調(diào)出本機(jī)內(nèi)存儲的安裝信息。
[0039]當(dāng)然,在客戶端的信息存儲也可以是數(shù)據(jù)文件的形式,即相當(dāng)于數(shù)據(jù)文件位于客戶端本機(jī)。
[0040]在獲得與該軟件對應(yīng)的安裝信息,并且確定了在本客戶端的具體安裝位置后,即可將該軟件添加的文件及對注冊表和/或系統(tǒng)文件的修改進(jìn)行刪除或恢復(fù)。具體的執(zhí)行方式有多種選擇,例如:可以首先調(diào)用該軟件自帶的卸載程序,執(zhí)行常規(guī)卸載;在常規(guī)卸載完成后,根據(jù)所述對應(yīng)的安裝信息搜索對應(yīng)位置,查詢是否存在殘余文件或注冊表項,如果存在,則將其直接刪除。
[0041]通過執(zhí)行常規(guī)卸載,雖然可以較為穩(wěn)妥的卸載軟件,但速度可能較慢,尤其是存在殘余文件時,還需要再次執(zhí)行搜索。因此,根據(jù)本發(fā)明的另一實施例,也可以不執(zhí)行常規(guī)卸載,而是直接根據(jù)所述對應(yīng)的安裝信息,搜索可能涉及的安裝軟件的目錄和/或注冊表項;如果搜索到與所述安裝信息相匹配的內(nèi)容,則直接刪除或恢復(fù)。
[0042]在某些應(yīng)用環(huán)境中,例如一些手機(jī)的操作系統(tǒng),要求在執(zhí)行軟件卸載時,必須要經(jīng)過該軟件自帶的卸載程序才能完成,這雖然可以在一定程度上防止誤刪除軟件,但也給一些惡意程序留下了可乘之機(jī)。例如,一些惡意程序篡改了應(yīng)用軟件自帶的卸載程序,導(dǎo)致一旦運(yùn)行該卸載程序就又會觸發(fā)該惡意程序,從而無法徹底刪除病毒。針對這種情況,本