專利名稱:一種ie6內(nèi)核與新型ie內(nèi)核的切換方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及瀏覽器的技術(shù)領(lǐng)域,特別是涉及一種IE6內(nèi)核與新型IE內(nèi)核的切換方法和一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)。
背景技術(shù):
瀏覽器最重要的部分是“Rendering Engine”,可大概譯為“解釋引擎”,一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。瀏覽器內(nèi)核負(fù)責(zé)對(duì)網(wǎng)頁語法的解釋(如HTML、JavaScript)并渲染(顯示)網(wǎng)頁。所以,通常所謂的瀏覽器內(nèi)核也就是對(duì)頁面進(jìn)行下載、解析、執(zhí)行、渲染的引擎,該引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息。目前市場上流行的瀏覽器,按實(shí)現(xiàn)方式大體可以分為兩種:第一種,瀏覽器的開發(fā)者既進(jìn)行瀏覽器內(nèi)核的開發(fā),也進(jìn)行瀏覽器產(chǎn)品的開發(fā)。如:chrome瀏覽器、firefox瀏覽器、Safari瀏覽器、Internet Explore瀏覽器等。第二種,瀏覽器的開發(fā)者,僅進(jìn)行瀏覽器產(chǎn)品的開發(fā),使用其他瀏覽器廠商實(shí)現(xiàn)的內(nèi)核。將內(nèi)核嵌入到自己瀏覽器內(nèi)來使用。如:360安全瀏覽器、遨游瀏覽器、世界之窗瀏覽器、搜狗瀏覽器等。這種瀏覽器通常采用Internet Explorer瀏覽器內(nèi)核,即采用IE內(nèi)核的瀏覽器。目前,普通使用IE內(nèi)核的瀏覽器包括采用IE6 (Internetexplorer 6)內(nèi)核的瀏覽器和采用IE8 (Internetexplorer 8)內(nèi)核的瀏覽器。具體而言,Internetexplorer 6于2001年10月發(fā)布,距今已10年有余。但采用IE6內(nèi)核的瀏覽器至今仍然占據(jù)我國主流瀏覽器市場50%以上份額,由于環(huán)境變化、年代久遠(yuǎn)等問題,采用IE6內(nèi)核的瀏覽器在面對(duì)當(dāng)下互聯(lián)網(wǎng)中大量使用腳本、圖片、Flash等素材的環(huán)境中性能表現(xiàn)低下,無法使用戶獲得流暢體驗(yàn)。Internetexplorer 8于2008年發(fā)布以來得到長足應(yīng)用,如今采用IE8內(nèi)核的瀏覽器已經(jīng)逐漸取代采用IE6內(nèi)核的瀏覽器的市場份額,成為用戶主流的網(wǎng)頁瀏覽器。WindowsVista以上的系統(tǒng)甚至直接取消了對(duì)IE8以下版本的支持,但基于我國互聯(lián)網(wǎng)較為復(fù)雜的構(gòu)成,顯然用戶會(huì)面臨諸多問題。其中較為典型的就是自2001年以來,大量個(gè)人、團(tuán)隊(duì)基于IE6不嚴(yán)謹(jǐn)?shù)臉?biāo)準(zhǔn)規(guī)范構(gòu)建了大量只能在采用IE6內(nèi)核的瀏覽器下正常運(yùn)行的網(wǎng)站、服務(wù)。這樣一來,就直接導(dǎo)致了用戶在享受新一代瀏覽器全新技術(shù)的同時(shí),無法正常實(shí)現(xiàn)自己的工作、娛樂等需求。總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是:如何解決IE6內(nèi)核瀏覽器和IE8內(nèi)核瀏覽器的兼容性和適配性問題,使用戶獲得更好的網(wǎng)頁瀏覽體驗(yàn)。
發(fā)明內(nèi)容
本申請(qǐng)所要解決的技術(shù)問題是提供一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,用以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。相應(yīng)地,本申請(qǐng)還提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),用以保證上述方法在實(shí)際中的應(yīng)用。
本申請(qǐng)為解決上述問題提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,包括:生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8內(nèi)核,所述新型IE內(nèi)核文件為IE8內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8以上版本的IE內(nèi)核,所述新型IE內(nèi)核文件為IE8以上版本的IE內(nèi)核文件。優(yōu)選的是,所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件。優(yōu)選的是,所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟進(jìn)一步包括:從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫 DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中。優(yōu)選的是,所述從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL。優(yōu)選的是,所述瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào)的步驟進(jìn)一步包括:若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。優(yōu)選的是,所述瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào)的步驟還包括:若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為對(duì)應(yīng)的新型IE內(nèi)核。優(yōu)選的是,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟進(jìn)一步包括:子步驟S11、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S12、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ;子步驟S13、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;子步驟S14、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ;子步驟S15、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S12。優(yōu)選的是,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述IE8內(nèi)核文件的步驟進(jìn)一步包括:子步驟S21、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE8內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S22、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ;子步驟S23、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;子步驟S24、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ;子步驟S25、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S22。優(yōu)選的是,所述的方法還包括:將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;
所述瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件的步驟為,所述瀏覽器進(jìn)程重定向至內(nèi)存中的相應(yīng)位置加載所述IE6內(nèi)核文件;所述瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE8內(nèi)核文件的步驟為,所述瀏覽器進(jìn)程重定向至內(nèi)存中的相應(yīng)位置加載所述IE8內(nèi)核文件。本申請(qǐng)還提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),包括:內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;IE內(nèi)核版本號(hào)判斷模塊,用于由瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);IE6內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8內(nèi)核,所述新型IE內(nèi)核文件為IE8內(nèi)核文件。優(yōu)選的是,所述新型IE內(nèi)核為IE8以上版本的IE內(nèi)核,所述新型IE內(nèi)核文件為IE8以上版本的IE內(nèi)核文件。優(yōu)選的是,所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件。優(yōu)選的是,所述內(nèi)核文件生成模塊進(jìn)一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊(cè)表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中。優(yōu)選的是,所述DLL提取子模塊進(jìn)一步包括:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;
第二篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL。優(yōu)選的是,所述IE內(nèi)核版本號(hào)判斷模塊進(jìn)一步包括:第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;第二判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;第三判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。優(yōu)選的是,所述IE6內(nèi)核加載模塊進(jìn)一步包括:第一注冊(cè)表操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL;第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;第一 COM對(duì)象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一DLL內(nèi)核句柄操作子模塊,用于當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述第一 DLL操作子模塊。優(yōu)選的是,所述IE8內(nèi)核加載模塊進(jìn)一步包括:第二注冊(cè)表操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE8內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第二 DLL操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL;第二相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;第二 COM對(duì)象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述第二 DLL操作子模塊;
第二DLL內(nèi)核句柄操作子模塊,用于當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述第二 DLL操作子模塊。優(yōu)選的是,所述的系統(tǒng)還包括:內(nèi)存寫入模塊,用于將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;所述瀏覽器進(jìn)程重定向至的相應(yīng)位置為內(nèi)存中的相應(yīng)位置。本申請(qǐng)?zhí)峁┝艘环NIE6內(nèi)核與新型IE內(nèi)核的切換方法,其包括:生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件;則所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟包括:從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中;其中所述從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。本申請(qǐng)還提供了一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),其包括:內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件;則所述內(nèi)核文件生成模塊進(jìn)一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊(cè)表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中;其中所述DLL提取子模塊進(jìn)一步包括:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,第二API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;第二篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE內(nèi)核版本號(hào)判斷模塊,用于由瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);IE6內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):本申請(qǐng)可以在不影響用戶IE使用的前提下,對(duì)適合IE6顯示的頁面加載IE6內(nèi)核,適合IE8顯示的頁面加載IE8內(nèi)核,以達(dá)到復(fù)雜環(huán)境下用戶瀏覽最完整的兼容性和適配性。本申請(qǐng)充分結(jié)合了 IE6對(duì)銀行/大型門戶網(wǎng)站的普遍支持、IE8的安全、渲染、速度方面提升的優(yōu)點(diǎn),實(shí)現(xiàn)了一種IE6內(nèi)核與IE8內(nèi)核最完整的兼容方式。再者,通過本申請(qǐng)的智能判定自動(dòng)切換內(nèi)核,無須重新啟動(dòng)瀏覽器,無須更換操作系統(tǒng)、或升級(jí)IE、或安裝多款軟件,使用方便。此外,本申請(qǐng)的擴(kuò)展性好,可以支持IE其它版本內(nèi)核自動(dòng)切換。
圖1是本申請(qǐng)的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實(shí)施例1的步驟流程圖;圖2是本申請(qǐng)的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實(shí)施例2的步驟流程圖;圖3是本申請(qǐng)的一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。本申請(qǐng)的核心構(gòu)思在于,在不影響用戶IE使用的前提下,對(duì)適合IE6顯示的頁面加載IE6內(nèi)核,適合IE8顯示的頁面加載IE8內(nèi)核,以達(dá)到復(fù)雜環(huán)境下用戶瀏覽最完整的兼容性和適配性。參考圖1,示出了本申請(qǐng)的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實(shí)施例1的步驟流程圖,具體可以包括以下步驟:步驟101、生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;在本申請(qǐng)實(shí)施例中,所述IE內(nèi)核指采用IE(Internet Explorer)瀏覽器內(nèi)核,IE6內(nèi)核即指采用IE6 (Internet Explorer 6)的瀏覽器內(nèi)核,新型IE內(nèi)核包括IE8內(nèi)核以及IE8以上版本的IE內(nèi)核,IE8內(nèi)核即指采用IE8 (Internet Explorer 8)的瀏覽器內(nèi)核,IE8以上版本的IE內(nèi)核即指采用IE9、IElO等可能出現(xiàn)的更高版本的瀏覽器內(nèi)核。為使本領(lǐng)域技術(shù)人員更好地理解本申請(qǐng),在本說明書中,將IE8內(nèi)核作為新型IE內(nèi)核的一種示例進(jìn)行說明。在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述新型IE內(nèi)核文件可以為IE8內(nèi)核文件,則所述IE6內(nèi)核文件和IE8內(nèi)核文件可以包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件。其中,動(dòng)態(tài)鏈接庫DLL,是Dynamic Link Library的縮寫形式,DLL是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)的庫,DLL不是可執(zhí)行文件。動(dòng)態(tài)鏈接提供了一種方法,使進(jìn)程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于一個(gè)DLL中,該DLL包含一個(gè)或多個(gè)已被編譯、鏈接并與使用它們的進(jìn)程分開存儲(chǔ)的函數(shù)。DLL還有助于共享數(shù)據(jù)和資源。多個(gè)應(yīng)用程序可同時(shí)訪問內(nèi)存中單個(gè)DLL副本的內(nèi)容。通過使用DLL,程序可以實(shí)現(xiàn)模塊化,由相對(duì)獨(dú)立的組件組成。在本實(shí)施例中,所述步驟101具體可以包括如下子步驟:子步驟S01、從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;子步驟S02、經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;子步驟S03、將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;例如,將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的某個(gè)目錄下。在具體實(shí)現(xiàn)中,上述IE6內(nèi)核的相關(guān)文件,以及,IE8內(nèi)核的相關(guān)文件可以分別存儲(chǔ)在客戶端的不同目錄下;或者,也可以存儲(chǔ)至同一目錄,但針對(duì)各文件分別標(biāo)注其版本號(hào)標(biāo)識(shí),本申請(qǐng)對(duì)此不作限制。子步驟S04、生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中?;贗E內(nèi)核的瀏覽器,通過靜態(tài)、動(dòng)態(tài)方式加載的內(nèi)核DLL非常多,這些DLL可能與操作系統(tǒng)底層相關(guān),可能還需要引用一些注冊(cè)表項(xiàng)、數(shù)據(jù)文件、或者語言包文件,需要通過調(diào)試逐步分析生成。更為優(yōu)選的是,所述子步驟SOl可以進(jìn)一步包括以下子步驟:子步驟S01-11、重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;子步驟S01-12、通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;例如,通過監(jiān)視LoadLibrary接口(或其它模塊查看器),獲得瀏覽器加載的所有DLL。子步驟S01-13、排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL。以及,子步驟S01-21、重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;子步驟S01-22、通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;
子步驟S01-23、排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL。步驟102、瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);URL (Uniform Resoure Locator統(tǒng)一資源定位器)是Wffff網(wǎng)頁的地址,URL使用數(shù)字和字母按一定順序排列以確定一個(gè)地址。URL的第一個(gè)部分http:1l表示的是要訪問的文件的類型。在網(wǎng)上,這幾乎總是使用http (意思是超文本轉(zhuǎn)換協(xié)議,hypertext transferprotocol,因?yàn)樗怯脕磙D(zhuǎn)換網(wǎng)頁的協(xié)議。)URL從左到右由下述部分組成:Internet資源類型(scheme):指出Wffff客戶程序用來C作的工具?!!“http://,,表示W(wǎng)ffff服務(wù)器,“ftp://”表示FTP服務(wù)器,“gopher://”表示Gopher服務(wù)器,而“new: ”表示Newgroup新聞組。服務(wù)器地址(host):指出WWW網(wǎng)頁所在的服務(wù)器域名。端口(port):有時(shí)(并非總是這樣),對(duì)某些資源的訪問來說,需給出相應(yīng)的服務(wù)器提供端口號(hào)。路徑(path):指明服務(wù)器上某資源的位置(其格式與DOS系統(tǒng)中的格式一樣,通常有目錄/子目錄/文件名這樣結(jié)構(gòu)組成)。與端口一樣,路徑并非總是需要的。URL 地址格式排列為:scheme: //host:port/path,例如 http: //www.maogo0.com/bbs就是一個(gè)典型的URL地址。瀏覽器首先看到http (超文本傳送協(xié)議),便知道處理的是HTML鏈接 。接下來的www.maogo0.com是站點(diǎn)地址,最后是目錄/bbs。公知的是,進(jìn)程是一個(gè)正在執(zhí)行的程序,即計(jì)算機(jī)中正在運(yùn)行的程序?qū)嵗?;其可以分配給處理器并作為一個(gè)實(shí)體由處理器執(zhí)行。從用戶角度來看,瀏覽器進(jìn)程可以理解為在任務(wù)管理器內(nèi)所啟動(dòng)的瀏覽器代表的進(jìn)程。在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述步驟102具體可以包括如下子步驟:子步驟S121、若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;子步驟S122、若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;子步驟S123、若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。即每個(gè)頁面開始連接前,瀏覽器進(jìn)程會(huì)判斷訪問域名的信息,若為局域網(wǎng)地址或?yàn)榧僆P地址的HTTP請(qǐng)求,則開啟IE6模式;根據(jù)實(shí)際中IE8內(nèi)核的兼容域名列表,判定開啟IE8模式。在具體實(shí)現(xiàn)中,對(duì)于其它情況,可以使用系統(tǒng)自帶的其它IE內(nèi)核。在實(shí)際中,若新型IE內(nèi)核為IE8以上版本的IE內(nèi)核,則所述步驟102還可以包括如下子步驟:若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為對(duì)應(yīng)的新型IE內(nèi)核。步驟103、若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;重定向,字面即為對(duì)某A文件的操作直接轉(zhuǎn)移到B文件。比如讀、寫、設(shè)置長度或文件結(jié)尾指針等屬性、甚至是刪除操作。在本申請(qǐng)的一種優(yōu)先實(shí)施例中,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟可以進(jìn)一步包括以下子步驟:子步驟S11、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S12、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ;子步驟S13、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;子步驟S14、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ;其中,COM對(duì)象(The Component Object Model組件對(duì)象模型)是遵循COM規(guī)范編寫、以Win32動(dòng)態(tài)鏈接庫(DLL)或可執(zhí)行文件(EXE)形式發(fā)布的可執(zhí)行二進(jìn)制代碼,能夠滿足對(duì)組件架構(gòu)的所有需求。遵循COM的規(guī)范標(biāo)準(zhǔn),組件與應(yīng)用、組件與組件之間可以互操作,極其方便地建立可伸縮的應(yīng)用系統(tǒng)。COM對(duì)象是一個(gè)使用COM規(guī)格的可以重復(fù)使用的軟件組件。使用COM規(guī)格可以確保COM對(duì)象很好的工作,并且很容易的結(jié)合到你的應(yīng)用程序中。事實(shí)上,COM基本相當(dāng)于一個(gè)黑匣子,這個(gè)黑匣子能為你的應(yīng)用程序完成很多的工作。COM對(duì)象一般用動(dòng)態(tài)連接庫(DLL)實(shí)現(xiàn)。和普通的DLL—樣,COM對(duì)象暴露一些方法,應(yīng)用程序能夠呼叫它,以便完成任何支持的操作。子步驟S15、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S12。其中,句柄是windows用來標(biāo)志應(yīng)用程序中建立的或是使用的唯一整數(shù),windows使用了大量的句柄來標(biāo)志很多對(duì)象。但是,句柄不是一個(gè)指針,程序不能利用它句柄來直接閱讀文件中的信息。步驟104、若當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。在本申請(qǐng)的一種優(yōu)先實(shí)施例中,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述IE8內(nèi)核文件的步驟可以進(jìn)一步包括如下子步驟:子步驟S21、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE8內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S22、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ;子步驟S23、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;子步驟S24、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ;子步驟S25、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S22。具體而言,在本申請(qǐng)實(shí)施例中,所述IE內(nèi)核文件的重定向主要是指在瀏覽器創(chuàng)建時(shí),轉(zhuǎn)向程序指定路徑加載文件,主要包括:UIE內(nèi)核重定向。使瀏覽器加載指定版本內(nèi)核對(duì)象,重載實(shí)現(xiàn)系統(tǒng)API,具體可以米用:CoCreateInstance:創(chuàng)建文檔及框架組件CoGetClassObject:創(chuàng)建腳本引擎及腳本對(duì)象CoCreateInstanceEx:創(chuàng)建文字系統(tǒng)等擴(kuò)展接口2、DLL重定向。一些功能模塊可能以DLL方式實(shí)現(xiàn),也需要重載系統(tǒng)API以重定向,具體可以采用:LoadLibrary/LoadLibrary:實(shí)現(xiàn) DLL 加載FreeLibrary:實(shí)現(xiàn) DLL 釋放3、注冊(cè)表重定向。使瀏覽器加載/保存指定版本的配置數(shù)據(jù),重載實(shí)現(xiàn)系統(tǒng)API,具體可以采用:RegOpenKeyEx:打開注冊(cè)表鍵值以讀寫當(dāng)然,上述方法僅僅用作示例,在具體實(shí)現(xiàn)中,本領(lǐng)域技術(shù)人員應(yīng)用其它內(nèi)核重定向的方法加載對(duì)應(yīng)版本的IE內(nèi)核文件均是可行的,本申請(qǐng)對(duì)此無需加以限制。參考圖2,示出了本申請(qǐng)的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法實(shí)施例2的步驟流程圖,具體可以包括以下步驟:步驟201、生成IE6內(nèi)核文件和IE8內(nèi)核文件,并導(dǎo)入客戶端;步驟202、瀏覽器進(jìn)程啟動(dòng)時(shí),將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;步驟203、瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);步驟204、若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核,則瀏覽器進(jìn)程重定向至內(nèi)存中相應(yīng)位置加載所述IE6內(nèi)核文件;步驟205、若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核,則瀏覽器進(jìn)程重定向至內(nèi)存中相應(yīng)位置加載所述IE8內(nèi)核文件。為使本領(lǐng)域技術(shù)人員更好地理解本申請(qǐng),以下通過一個(gè)完整示例說明本申請(qǐng)的IE6內(nèi)核與IE8內(nèi)核的切換過程。步驟A、將IE6內(nèi)核的主要模塊文件和IE8內(nèi)核的主要模塊文件,安裝到客戶端的指定目錄中;其中,所述IE6內(nèi)核的主要模塊文件和IE8內(nèi)核的主要模塊文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件等。步驟B、將IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件,導(dǎo)入客戶端的注冊(cè)表中;步驟C、瀏覽器啟動(dòng)時(shí),執(zhí)行以下子步驟:子步驟Cl、監(jiān)視注冊(cè)表、DLL、內(nèi)存、網(wǎng)頁(用戶輸入或點(diǎn)擊的URL)的訪問;子步驟C2、加載IE6內(nèi)核的主要模塊文件和IE8內(nèi)核的主要模塊文件到內(nèi)存中;步驟D、當(dāng)瀏覽器接收到用戶提交的URL時(shí),按照如下方式計(jì)算適合該URL的IE內(nèi)核版本號(hào):如果URL為局域網(wǎng)地址,則返回IE內(nèi)核版本號(hào)為IE6(使用IE6內(nèi)核);如果URL包含IP地址,則返回IE內(nèi)核版本號(hào)為IE6(使用IE6內(nèi)核);如果URL在IE8的兼容域名列表中,則返回IE內(nèi)核版本號(hào)為IE8(使用IE8內(nèi)核);其它情況返回0(使用系統(tǒng)自有的IE內(nèi)核)。步驟E、瀏覽器開始加載內(nèi)核,創(chuàng)建頁面時(shí),會(huì)讀寫注冊(cè)表、加載DLL及數(shù)據(jù)文件、創(chuàng)建COM對(duì)象,具體涉及以下操作:1、當(dāng)監(jiān)視到瀏覽器訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)其讀寫步驟B中導(dǎo)入的對(duì)應(yīng)項(xiàng);若查詢IE內(nèi)核模塊路徑,則返回步驟C中的內(nèi)存指定位置;2、當(dāng)監(jiān)視到瀏覽器訪問DLL時(shí),根據(jù)步驟D中計(jì)算的IE內(nèi)核版本號(hào),定位到內(nèi)存中對(duì)應(yīng)的內(nèi)核文件目錄,到該內(nèi)核目錄中查找相同名稱的DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載對(duì)應(yīng)的內(nèi)核文件;否則,引導(dǎo)瀏覽器加載系統(tǒng)的缺省模塊;3、當(dāng)監(jiān)視到瀏覽器訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)步驟D中計(jì)算的IE內(nèi)核版本號(hào),到內(nèi)存中對(duì)應(yīng)的內(nèi)核文件目錄中查找相應(yīng)文件;4、當(dāng)監(jiān)視到瀏覽器創(chuàng)建COM對(duì)象時(shí),從步驟B的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的DLL,執(zhí)行以上步驟2 ;5、當(dāng)監(jiān)視到瀏覽器訪問DLL內(nèi)核句柄時(shí),執(zhí)行以上步驟2。在本例中,步驟A、B可以在安裝過程中完成,每次瀏覽器進(jìn)程啟動(dòng)時(shí)執(zhí)行C項(xiàng),步驟D、E在每次瀏覽頁面時(shí)均執(zhí)行。需要說明的是,對(duì)于方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。參考圖3,示出了本申請(qǐng)的一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:內(nèi)核文件生成模塊301,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;IE內(nèi)核版本號(hào)判斷模塊302,用于由瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);IE6內(nèi)核加載模塊303,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊304,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。在本申請(qǐng)實(shí)施例中,所述新型IE內(nèi)核可以為IE8內(nèi)核,為使本領(lǐng)域技術(shù)人員更好地理解本申請(qǐng),在本申請(qǐng)實(shí)施例中以IE8內(nèi)核為新型IE內(nèi)核的一種示例進(jìn)行說明。在實(shí)際中,所述新型IE內(nèi)核還可以為IE8以上版本的IE內(nèi)核,在這種情況下,所述新型IE內(nèi)核文件可以為IE8以上版本的IE內(nèi)核文件。在具體實(shí)現(xiàn)中,所述新型IE內(nèi)核文件可以為IE8內(nèi)核文件,則所述IE6內(nèi)核文件和IE8內(nèi)核文件可以包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件。在這種情況下,所述內(nèi)核文件生成模塊301可以進(jìn)一步包括如下子模塊:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊(cè)表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中。在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述DLL提取子模塊可以進(jìn)一步包括如下子模塊:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;第二篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL。作為本申請(qǐng)實(shí)施例具體應(yīng)用的一種示例,所述IE內(nèi)核版本號(hào)判斷模塊302可以進(jìn)一步包括如下子模塊:第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;第二判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;第三判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。
在具體實(shí)現(xiàn)中,所述IE6內(nèi)核加載模塊303可以進(jìn)一步包括如下子模塊:第一注冊(cè)表操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL;第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;第一 COM對(duì)象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一DLL內(nèi)核句柄操作子模塊,用于當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述第一 DLL操作子模塊。在具體實(shí)現(xiàn)中,所述IE8內(nèi)核加載模塊304可以進(jìn)一步包括如下子模塊:第二注冊(cè)表操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE8內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第二 DLL操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ;第二相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;第二 COM對(duì)象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述第二 DLL操作子模塊;第二DLL內(nèi)核句柄操作子模塊,用于當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述第二 DLL操作子模塊。在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述系統(tǒng)還可以包括:內(nèi)存寫入模塊,用于將所述IE6內(nèi)核文件和IE8內(nèi)核文件寫入內(nèi)存;在這種情況下,所述瀏覽器進(jìn)程重定向至的相應(yīng)位置為內(nèi)存中的相應(yīng)位置。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。以上對(duì)本申請(qǐng)所提供的一種IE6內(nèi)核與新型IE內(nèi)核的切換方法和一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。本發(fā)明揭示了 Al、一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,其特征在于,所述的方法包括:生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為 IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件;則所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟包括:從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中;其中所述從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。A2、如Al所述的方法,其特征在于,所述新型IE內(nèi)核進(jìn)一步包括:IE8以上版本的IE內(nèi)核;則所述新型IE內(nèi)核文件進(jìn)一步包括:IE8以上版本的IE內(nèi)核文件。A3、如Al A2中任一項(xiàng)所述的方法,其特征在于,所述瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào)的步驟進(jìn)一步包括:若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。A4、如Al A2中任一所述的方法,其特征在于,所述瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào)的步驟還包括:若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為對(duì)應(yīng)的新型IE內(nèi)核。A5、如Al所述的方法,其特征在于,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟進(jìn)一步包括:子步驟S11、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S12、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ;子步驟S13、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件 、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;子步驟S14、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ;子步驟S15、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S12。A6^nAl所述的方法,其特征在于,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述新型IE內(nèi)核文件的步驟進(jìn)一步包括:其中所述新型IE內(nèi)核文件包括IE8內(nèi)核文件,子步驟S21、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE8內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;子步驟S22、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL;子步驟S23、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;子步驟S24、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ;子步驟S25、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S22。本發(fā)明還揭示了 B7、一種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),其特征在于,包括:內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件;則所述內(nèi)核文件生成模塊進(jìn)一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊(cè)表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中;其中所述DLL提取子模塊進(jìn)一步包括:第一 API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL;第一篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口API ;第二 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;第二篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE內(nèi)核版本號(hào)判斷模塊,用于由瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);IE6內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;IE8內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。B8、如B7所述的系統(tǒng),其特征在于,所述新型IE內(nèi)核進(jìn)一步包括:IE8以上版本的IE內(nèi)核;所述新型IE內(nèi)核文件進(jìn)一步包括:IE8以上版本的IE內(nèi)核文件。B9、如B7 B8中任一項(xiàng)所述的系統(tǒng),其特征在于,所述IE內(nèi)核版本號(hào)判斷模塊進(jìn)一步包括:第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核; 第二判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核;第三判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。BlO^n B7所述的系統(tǒng),其特征在于,所述IE6內(nèi)核加載模塊進(jìn)一步包括:第一注冊(cè)表操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ;第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;第一 COM對(duì)象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一 DLL內(nèi)核句柄操作子模塊,用于當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述第一 DLL操作子模塊。B11、如B7所述的系統(tǒng),其特征在于,所述IE8內(nèi)核加載模塊進(jìn)一步包括:其中所述IE8內(nèi)核加載模塊中所述的新型IE內(nèi)核文件包括IE8內(nèi)核文件,第二注冊(cè)表操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE8內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息;第二 DLL操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL;第二相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件;第二 COM對(duì)象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述第二 DLL操作子模塊;第二DLL內(nèi)核句柄操作子模塊,用于當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述第二 DLL操作子模塊。
權(quán)利要求
1.一種IE6內(nèi)核與新型IE內(nèi)核的切換方法,其特征在于,所述的方法包括: 生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件; 則所述生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端的步驟包括:從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中; 其中所述從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL的步驟包括:重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;以及,重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ; 瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào); 若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件; 若當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。
2.如權(quán)利要求1所述的方法,其特征在于,所述新型IE內(nèi)核進(jìn)一步包括:IE8以上版本的IE內(nèi)核;則所述新型IE內(nèi)核文件進(jìn)一步包括:IE8以上版本的IE內(nèi)核文件。
3.如權(quán)利要求1 2中任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào)的步驟進(jìn)一步包括: 若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核; 若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核; 若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。
4.如權(quán)利要求1 2中任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào)的步驟還包括: 若當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在新型IE內(nèi)核兼容域名列表中,則判定當(dāng)前適配的IE內(nèi)核版本號(hào)為對(duì)應(yīng)的新型IE內(nèi)核。
5.如權(quán)利要求1所述的方法,其特征在于,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述IE6內(nèi)核文件的步驟進(jìn)一步包括: 子步驟S11、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息; 子步驟S12、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ; 子步驟S13、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件; 子步驟S14、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S12 ; 子步驟S15、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S12。
6.如權(quán)利要求1所述的方法,其特征在于,所述瀏覽器進(jìn)程重定向至客戶端相應(yīng)位置加載所述新型IE內(nèi)核文件的步驟進(jìn)一步包括:其中所述新型IE內(nèi)核文件包括IE8內(nèi)核文件, 子步驟S21、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE8內(nèi)核的注冊(cè)表配置文 件;若查詢IE內(nèi)核文件的路徑,則返回IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息; 子步驟S22、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL ; 子步驟S23、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE8內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE8內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件; 子步驟S24、當(dāng)監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述子步驟S22 ; 子步驟S25、當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述子步驟S22。
7.—種IE6內(nèi)核與新型IE內(nèi)核的切換系統(tǒng),其特征在于,包括: 內(nèi)核文件生成模塊,用于生成IE6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;其中,所述新型IE內(nèi)核為IE8內(nèi)核,新型IE內(nèi)核文件為IE8內(nèi)核文件;所述IE6內(nèi)核文件和IE8內(nèi)核文件包括:IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL和IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;IE6內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的數(shù)據(jù)文件;IE6內(nèi)核的語言包文件和IE8內(nèi)核的語言包文件;以及,IE6內(nèi)核的注冊(cè)表配置文件和IE8內(nèi)核的注冊(cè)表配置文件; 則所述內(nèi)核文件生成模塊進(jìn)一步包括:DLL提取子模塊,用于從IE6內(nèi)核提取IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL,從IE8內(nèi)核提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ;相關(guān)文件組織子模塊,用于經(jīng)調(diào)試分析生成IE6內(nèi)核的數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的數(shù)據(jù)文件和IE8內(nèi)核的語言包文件;安裝子模塊,用于將所述IE6內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件,以及,IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL、數(shù)據(jù)文件和語言包文件安裝至客戶端的指定位置;注冊(cè)表配置子模塊,用于生成IE6內(nèi)核和IE8內(nèi)核的注冊(cè)表配置文件,并導(dǎo)入所述客戶端的注冊(cè)表中; 其中所述DLL提取子模塊進(jìn)一步包括:第一API重載單元,用于重載所有與IE6內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第一 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL ;第一篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE6內(nèi)核 的動(dòng)態(tài)鏈接庫DLL ;以及,第二 API重載單元,用于重載所有與IE8內(nèi)核加載相關(guān)的系統(tǒng)應(yīng)用程序接口 API ;第二 DLL獲取單元,用于通過監(jiān)視動(dòng)態(tài)鏈接庫DLL查看接口,獲得瀏覽器加載的所有動(dòng)態(tài)鏈接庫DLL;第二篩選單元,用于排除系統(tǒng)底層的動(dòng)態(tài)鏈接庫DLL,提取IE8內(nèi)核的動(dòng)態(tài)鏈接庫DLL ; IE內(nèi)核版本號(hào)判斷模塊,用于由瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào); IE6內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件; IE8內(nèi)核加載模塊,用于在當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核時(shí),由瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述新型IE內(nèi)核進(jìn)一步包括:IE8以上版本的IE內(nèi)核;所述新型IE內(nèi)核文件進(jìn)一步包括:IE8以上版本的IE內(nèi)核文件。
9.如權(quán)利要求7 8中任一項(xiàng)權(quán)利要求所述的系統(tǒng),其特征在于,所述IE內(nèi)核版本號(hào)判斷模塊進(jìn)一步包括: 第一判定子模塊,用于在前用戶提交的統(tǒng)一資源定位符URL信息為局域網(wǎng)地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核; 第二判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含IP地址時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核; 第三判定子模塊,用于在當(dāng)前用戶提交的統(tǒng)一資源定位符URL信息包含在IE8內(nèi)核兼容域名列表中時(shí),判定當(dāng)前適配的IE內(nèi)核版本號(hào)為IE8內(nèi)核。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述IE6內(nèi)核加載模塊進(jìn)一步包括: 第一注冊(cè)表操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問注冊(cè)表時(shí),若訪問IE配置項(xiàng),則引導(dǎo)瀏覽器進(jìn)程讀寫IE6內(nèi)核的注冊(cè)表配置文件;若查詢IE內(nèi)核文件的路徑,則返回IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置的信息; 第一 DLL操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問動(dòng)態(tài)鏈接庫DLL時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的動(dòng)態(tài)鏈接庫DLL,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該動(dòng)態(tài)鏈接庫DLL; 第一相關(guān)文件操作子模塊,用于在監(jiān)視到瀏覽器進(jìn)程訪問數(shù)據(jù)文件、語言包文件時(shí),根據(jù)當(dāng)前適配的IE6內(nèi)核的版本號(hào),定位到對(duì)應(yīng)的IE6內(nèi)核文件所導(dǎo)入的客戶端指定位置,并到該位置查找相同名稱的數(shù)據(jù)文件和語言包文件,若找到,則引導(dǎo)瀏覽器進(jìn)程加載該數(shù)據(jù)文件和語言包文件; 第一 COM對(duì)象創(chuàng)建子模塊,用于在監(jiān)視到瀏覽器進(jìn)程創(chuàng)建COM對(duì)象時(shí),從所述客戶端的注冊(cè)表中,查找實(shí)現(xiàn)該COM對(duì)象的動(dòng)態(tài)鏈接庫DLL,然后調(diào)用所述第一 DLL操作子模塊;第一DLL內(nèi)核句柄操作子模塊,用于當(dāng)監(jiān)視到瀏覽器進(jìn)程訪問DLL內(nèi)核句柄時(shí),調(diào)用所述第一 DLL操 作子模塊。
全文摘要
本申請(qǐng)?zhí)峁┝艘环NIE6內(nèi)核與新型IE內(nèi)核的切換方法和切換系統(tǒng)。本申請(qǐng)?zhí)峁┑姆椒ǎㄉ蒊E6內(nèi)核文件和新型IE內(nèi)核文件,并導(dǎo)入客戶端;瀏覽器進(jìn)程依據(jù)用戶提交的統(tǒng)一資源定位符URL信息,判斷當(dāng)前適配的IE內(nèi)核版本號(hào);若當(dāng)前適配的IE內(nèi)核版本號(hào)為IE6內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述IE6內(nèi)核文件;若當(dāng)前適配的IE內(nèi)核版本號(hào)為新型IE內(nèi)核,則瀏覽器進(jìn)程重定向至相應(yīng)位置加載所述新型IE內(nèi)核文件。本申請(qǐng)可以有效控制IE內(nèi)核瀏覽器的頁面下載過程,提高頁面下載的效率和穩(wěn)定性。
文檔編號(hào)G06F9/48GK103176844SQ20131012385
公開日2013年6月26日 申請(qǐng)日期2011年9月28日 優(yōu)先權(quán)日2011年9月28日
發(fā)明者陳志 , 唐曦, 趙晨曦 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司