本發(fā)明涉及計(jì)算機(jī)信息技術(shù),尤其涉及一種獲取操作系統(tǒng)版本信息的方法、裝置及電子設(shè)備。
背景技術(shù):
:隨著計(jì)算機(jī)通信以及互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,電子設(shè)備,例如,智能移動(dòng)電話、個(gè)人數(shù)字助理、掌上電腦、筆記本電腦等應(yīng)用越來越廣泛,由于不同用戶的個(gè)性化需求,安裝在電子設(shè)備中的操作系統(tǒng)千差萬別,同一操作系統(tǒng)的版本也各不相同,例如,隨著微軟視窗(Windows)操作系統(tǒng)版本的不斷升級,現(xiàn)存多個(gè)版本的視窗操作系統(tǒng),包括但不限于:WindowsXP、WindowsVista、Windows7、Windows8、Windows10等主流視窗操作系統(tǒng)。同時(shí),電子設(shè)備中需要安裝的應(yīng)用程序(APP,Application)也越來越多,例如,通訊類應(yīng)用程序、游戲類應(yīng)用程序、娛樂類應(yīng)用程序、社交類應(yīng)用程序、實(shí)用生活類應(yīng)用程序等,因而,各類應(yīng)用程序在安裝時(shí),需要獲取操作系統(tǒng)版本信息,從而可以基于當(dāng)前操作系統(tǒng)版本信息下載對應(yīng)的應(yīng)用程序安裝包進(jìn)行安裝,使之可以正常運(yùn)行在當(dāng)前操作系統(tǒng)中,例如,對于毒霸安全應(yīng)用程序中的一應(yīng)用功能(例如,推薦應(yīng)用功能、防御系統(tǒng)應(yīng)用功能等),在不同版本的操作系統(tǒng)下,可能有不同的實(shí)現(xiàn)手段或展現(xiàn)方式,因而,需要在對應(yīng)版本的操作系統(tǒng)下安裝才能正常運(yùn)行和使用。目前,獲取操作系統(tǒng)版本信息是通過調(diào)用版本信息獲取函數(shù)(GetVersionEx函數(shù))來實(shí)現(xiàn)的,該版本信息獲取函數(shù)用于獲取當(dāng)前操作系統(tǒng)版本信息,返回值為一版本結(jié)構(gòu)信息(OSVERSIONINFO),該OSVERSIONINFO信息中包含有主版本號和次版本號,通過查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本的映射關(guān)系集,可以獲取操作系統(tǒng)版本信息。但該獲取操作系統(tǒng)版本信息的方法,由于該版本信息獲取函數(shù)在一些操作系統(tǒng)版本之后被相應(yīng)操作系統(tǒng)開發(fā)商廢棄,使得該版本信息獲取函數(shù)不能獲取后續(xù)新開發(fā)的操作系統(tǒng)版本信息。例如,對于Windows8以上的視窗操作系統(tǒng)版本,在調(diào)用版本信息獲取函數(shù)獲取版本信息時(shí),在版本信息獲取函數(shù)返回的版本結(jié)構(gòu)信息中,依據(jù)主次版本號均判斷該操作系統(tǒng)版本信息為Windows8,并不能識(shí)別Windows8以上的操作系統(tǒng)版本,使得獲取的操作系統(tǒng)版本信息準(zhǔn)確率較低,進(jìn)而影響依據(jù)獲取的操作系統(tǒng)版本信息安裝的應(yīng)用程序的可使用性。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明實(shí)施例提供一種獲取操作系統(tǒng)版本信息的方法、裝置及電子設(shè)備,能夠提升獲取的操作系統(tǒng)版本信息的準(zhǔn)確性,以解決現(xiàn)有的獲取操作系統(tǒng)版本信息的方法中,版本信息獲取函數(shù)被廢棄后,不能準(zhǔn)確獲取后續(xù)新開發(fā)的操作系統(tǒng)版本信息的問題。第一方面,本發(fā)明實(shí)施例提供一種獲取操作系統(tǒng)版本信息的方法,包括:調(diào)用版本信息獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息;提取獲取的所述當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號;如果所述主版本號大于或等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號大于或等于預(yù)先設(shè)置的次版本號閾值;調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號和次版本號;查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取再次獲取的所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。結(jié)合第一方面,在第一方面的第一種實(shí)施方式中,所述方法還包括:如果所述主版本號小于預(yù)先設(shè)置的主版本號閾值,或,所述主版本號等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號小于預(yù)先設(shè)置的次版本號閾值;查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。結(jié)合第一方面,在第一方面的第二種實(shí)施方式中,所述調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息包括:調(diào)用模塊句柄獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)所屬的內(nèi)核文件動(dòng)態(tài)鏈接庫模塊的模塊基地址;以所述模塊基地址為參數(shù),調(diào)用進(jìn)程地址獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)的函數(shù)地址;依據(jù)獲取的函數(shù)地址,調(diào)用所述系統(tǒng)版本號獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息。結(jié)合第一方面,在第一方面的第三種實(shí)施方式中,所述調(diào)用版本信息獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息包括:從所述調(diào)用版本信息獲取函數(shù)返回的版本結(jié)構(gòu)信息中,獲取當(dāng)前操作系統(tǒng)主次版本信息。結(jié)合第一方面、第一方面的第一種至第三種中任一種實(shí)施方式,在第一方面的第四種實(shí)施方式中,所述主版本號閾值設(shè)置為6,次版本號閾值設(shè)置為2。第二方面,本發(fā)明實(shí)施例提供一種獲取操作系統(tǒng)版本信息的裝置,包括:第一函數(shù)調(diào)用模塊、提取模塊、主次版本號處理模塊、第二函數(shù)調(diào)用模塊以及版本信息獲取模塊,其中,第一函數(shù)調(diào)用模塊,用于調(diào)用版本信息獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息;提取模塊,用于提取獲取的所述當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號;主次版本號處理模塊,如果所述主版本號大于或等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號大于或等于預(yù)先設(shè)置的次版本號閾值;第二函數(shù)調(diào)用模塊,用于調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號和次版本號;版本信息獲取模塊,用于查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取再次獲取的所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。結(jié)合第二方面,在第二方面的第一種實(shí)施方式中,所述主次版本號處理模塊還用于如果所述主版本號小于預(yù)先設(shè)置的主版本號閾值,或,所述主版本號等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號小于預(yù)先設(shè)置的次版本號閾值;查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。結(jié)合第二方面,在第二方面的第二種實(shí)施方式中,所述第二函數(shù)調(diào)用模塊包括:基地址獲取單元、函數(shù)地址獲取單元以及主次版本信息獲取單元,其中,基地址獲取單元,用于調(diào)用模塊句柄獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)所屬的內(nèi)核文件動(dòng)態(tài)鏈接庫模塊的模塊基地址;函數(shù)地址獲取單元,用于以所述模塊基地址為參數(shù),調(diào)用進(jìn)程地址獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)的函數(shù)地址;主次版本信息獲取單元,用于依據(jù)獲取的函數(shù)地址,調(diào)用所述系統(tǒng)版本號獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息。結(jié)合第二方面,在第二方面的第二種實(shí)施方式中,所述第一函數(shù)調(diào)用模塊包括:函數(shù)調(diào)用單元以及主次版本信息解析單元,其中,函數(shù)調(diào)用單元,用于調(diào)用版本信息獲取函數(shù);主次版本信息解析單元,用于從所述調(diào)用版本信息獲取函數(shù)返回的版本結(jié)構(gòu)信息中,解析獲取當(dāng)前操作系統(tǒng)主次版本信息。結(jié)合第二方面、第二方面的第一種至第三種中任一種實(shí)施方式,在第二方面的第四種實(shí)施方式中,所述主版本號閾值設(shè)置為6,次版本號閾值設(shè)置為2。第三方面,本發(fā)明實(shí)施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲(chǔ)器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲(chǔ)器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器用于存儲(chǔ)可執(zhí)行程序代碼;處理器通過讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一所述的獲取操作系統(tǒng)版本信息的方法。本發(fā)明實(shí)施例提供的一種獲取操作系統(tǒng)版本信息的方法、裝置及電子設(shè)備,通過調(diào)用版本信息獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息;提取獲取的所述當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號;如果所述主版本號大于或等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號大于或等于預(yù)先設(shè)置的次版本號閾值;調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號和次版本號;查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取再次獲取的所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息,能夠提升獲取的操作系統(tǒng)版本信息的準(zhǔn)確性,以解決現(xiàn)有的獲取操作系統(tǒng)版本信息的方法中,版本信息獲取函數(shù)被廢棄后,不能準(zhǔn)確獲取后續(xù)新開發(fā)的操作系統(tǒng)版本信息的問題。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明的實(shí)施例一獲取操作系統(tǒng)版本信息的方法流程示意圖;圖2為本發(fā)明的實(shí)施例二獲取操作系統(tǒng)版本信息的裝置結(jié)構(gòu)示意圖;圖3為本發(fā)明電子設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。具體實(shí)施方式下面結(jié)合附圖對本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。應(yīng)當(dāng)明確,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1為本實(shí)施例一獲取操作系統(tǒng)版本信息的方法流程示意圖,如圖1所示,本實(shí)施例的方法可以包括:步驟101,調(diào)用版本信息獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息;本實(shí)施例中,作為一可選實(shí)施例,本實(shí)施例獲取操作系統(tǒng)版本信息的方法應(yīng)用于微軟視窗操作系統(tǒng)。本實(shí)施例中,作為一可選實(shí)施例,版本信息獲取函數(shù)包括GetVersionEx函數(shù)。其中,GetVersionEx函數(shù)包括:GetVersionExW函數(shù)以及GetVersionExA函數(shù)。本實(shí)施例中,調(diào)用版本信息獲取函數(shù)獲取當(dāng)前操作系統(tǒng)主次版本信息包括:從所述調(diào)用版本信息獲取函數(shù)返回的版本結(jié)構(gòu)信息中,獲取當(dāng)前操作系統(tǒng)主次版本信息。步驟102,提取獲取的所述當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號;本實(shí)施例中,作為一可選實(shí)施例,調(diào)用版本信息獲取函數(shù)(GetVersionEx函數(shù)),從返回的版本結(jié)構(gòu)信息(OSVERSIONINFO信息)中獲取主版本號和次版本號,例如,當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號可以如下:主版本號5、次版本號2;或主版本號6、次版本號0;或主版本號6、次版本號1;或主版本號6、次版本號2。步驟103,如果所述主版本號大于或等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號大于或等于預(yù)先設(shè)置的次版本號閾值;本實(shí)施例中,對于每一操作系統(tǒng),一主版本號和一次版本號可以唯一確定一操作系統(tǒng)版本信息,通過查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,可以獲取操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號映射的操作系統(tǒng)版本信息。例如,基于微軟的視窗操作系統(tǒng),主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集可以如下表1所示。表1主版本號次版本號視窗操作系統(tǒng)版本信息52WindowsXP60WindowsVista61Windows762Windows8………本實(shí)施例中,對于Windows8以上的視窗操作系統(tǒng)版本(信息),調(diào)用版本信息獲取函數(shù)獲取的當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號均為6,次版本號均為2,使得得到的視窗操作系統(tǒng)版本不是當(dāng)前操作系統(tǒng)的真實(shí)版本,降低了獲取的操作系統(tǒng)版本信息的準(zhǔn)確率,進(jìn)而影響依據(jù)獲取的操作系統(tǒng)版本信息安裝的應(yīng)用程序的可使用性,例如,可能導(dǎo)致安裝的應(yīng)用程序無法運(yùn)行。本實(shí)施例中,作為一可選實(shí)施例,主版本號閾值設(shè)置為6,次版本號閾值設(shè)置為2。即如果主版本號大于或等于6,且所述次版本號大于或等于2,需要執(zhí)行本實(shí)施例方法的進(jìn)一步處理。本實(shí)施例中,作為一可選實(shí)施例,該方法還包括:如果所述主版本號小于預(yù)先設(shè)置的主版本號閾值,或,所述主版本號等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號小于預(yù)先設(shè)置的次版本號閾值;查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。步驟104,調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號和次版本號;本實(shí)施例中,作為一可選實(shí)施例,系統(tǒng)版本號獲取函數(shù)為RtlGetNtVersionNumbers函數(shù),該RtlGetNtVersionNumbers函數(shù)為微軟一未公開的未文檔化的函數(shù),在動(dòng)態(tài)鏈接庫模塊(ntdll.dll)中定義和保存,用于獲取操作系統(tǒng)版本號,可用于操作系統(tǒng)主次版本信息獲取。本實(shí)施例中,在視窗操作系統(tǒng)版本為Windows8或Windows8以上時(shí),通過調(diào)用版本信息獲取函數(shù),獲取的當(dāng)前操作系統(tǒng)主次版本信息存在準(zhǔn)確率較低的技術(shù)問題,因而,通過再次調(diào)用RtlGetNtVersionNumbers函數(shù),可以獲取當(dāng)前操作系統(tǒng)精確的主次版本信息,返回的參數(shù)包括主版本號以及次版本號。本實(shí)施例中,作為一可選實(shí)施例,調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息包括:A11,調(diào)用模塊句柄獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)所屬的內(nèi)核文件動(dòng)態(tài)鏈接庫模塊的模塊基地址;本實(shí)施例中,作為一可選實(shí)施例,模塊句柄獲取函數(shù)為::GetModuleHandle(T(″ntdll.dll″))函數(shù),內(nèi)核文件動(dòng)態(tài)鏈接庫模塊為ntdll.dll模塊。A12,以所述模塊基地址為參數(shù),調(diào)用進(jìn)程地址獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)的函數(shù)地址;本實(shí)施例中,作為一可選實(shí)施例,進(jìn)程地址獲取函數(shù)為::GetProcAddress函數(shù)。A13,依據(jù)獲取的函數(shù)地址,調(diào)用所述系統(tǒng)版本號獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息。本實(shí)施例中,調(diào)用::GetModuleHandle(_T(″ntdll.dll″))函數(shù)獲取ntdll.dll模塊的模塊基地址,由獲取的模塊基地址為參數(shù),調(diào)用::GetProcAddress函數(shù),獲取RtlGetNtVersionNumbers函數(shù)的函數(shù)地址,然后,調(diào)用該函數(shù)地址對應(yīng)的RtlGetNtVersionNumbers函數(shù),這樣,在調(diào)用RtlGetNtVersionNumbers函數(shù)的返回值列表中,包括當(dāng)前操作系統(tǒng)主次版本信息,例如,主版本號值以及次版本號值。本實(shí)施例中,例如,針對前述主版本號為6,次版本號為2的操作系統(tǒng)主次版本信息映射的操作系統(tǒng)版本,調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取的當(dāng)前操作系統(tǒng)主次版本信息可以如下:主版本號6、次版本號2;或主版本號6、次版本號4;或主版本號10、次版本號0。步驟105,查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取再次獲取的所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。本實(shí)施例中,作為一可選實(shí)施例,查詢主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,可以得到再次獲取的主版本號和次版本號映射的當(dāng)前操作系統(tǒng)版本信息如下:主版本號6、次版本號2,映射Windows8;主版本號6、次版本號4,映射舊版本W(wǎng)indows10;主版本號10、次版本號0,映射新版本W(wǎng)indows10等。本實(shí)施例獲取操作系統(tǒng)版本信息的方法,通過調(diào)用版本信息獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息;提取獲取的所述當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號;如果所述主版本號大于或等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號大于或等于預(yù)先設(shè)置的次版本號閾值;調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號和次版本號;查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取再次獲取的所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。這樣,對現(xiàn)有獲取操作系統(tǒng)版本信息的方法進(jìn)行擴(kuò)展,可以利用版本信息獲取函數(shù)獲取預(yù)先設(shè)置的操作系統(tǒng)版本閾值以下的操作系統(tǒng)版本,再利用系統(tǒng)版本號獲取函數(shù),例如,利用微軟未公開的版本號獲取函數(shù)RtlGetNtVersionNumbers函數(shù)獲取操作系統(tǒng)版本閾值以上的操作系統(tǒng)版本,能夠?qū)崿F(xiàn)獲取操作系統(tǒng)版本信息的兼容性,同時(shí),解決了版本信息獲取函數(shù)被相應(yīng)操作系統(tǒng)開發(fā)商廢棄后,不能準(zhǔn)確獲取后續(xù)新開發(fā)的操作系統(tǒng)版本信息的技術(shù)問題,可以有效提升獲取的操作系統(tǒng)版本信息的準(zhǔn)確率,增強(qiáng)依據(jù)獲取的操作系統(tǒng)版本信息安裝的應(yīng)用程序的可使用性,從而提供一種通用的、兼容的操作系統(tǒng)版本信息獲取方法,為應(yīng)用程序安裝提供準(zhǔn)確的操作系統(tǒng)版本信息獲取功能,提升安裝的應(yīng)用程序的可使用性。圖2為本發(fā)明的實(shí)施例二獲取操作系統(tǒng)版本信息的裝置結(jié)構(gòu)示意圖,如圖2所示,本實(shí)施例的裝置可以包括:第一函數(shù)調(diào)用模塊21、提取模塊22、主次版本號處理模塊23、第二函數(shù)調(diào)用模塊24以及版本信息獲取模塊25,其中,第一函數(shù)調(diào)用模塊21,用于調(diào)用版本信息獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息;本實(shí)施例中,作為一可選實(shí)施例,版本信息獲取函數(shù)包括GetVersionEx函數(shù)。其中,GetVersionEx函數(shù)包括:GetVersionExW函數(shù)以及GetVersionExA函數(shù)。本實(shí)施例中,作為一可選實(shí)施例,第一函數(shù)調(diào)用模塊21包括:函數(shù)調(diào)用單元以及主次版本信息解析單元(圖中未示出),其中,函數(shù)調(diào)用單元,用于調(diào)用版本信息獲取函數(shù);主次版本信息解析單元,用于從所述調(diào)用版本信息獲取函數(shù)返回的版本結(jié)構(gòu)信息中,解析獲取當(dāng)前操作系統(tǒng)主次版本信息。提取模塊22,用于提取獲取的所述當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號以及次版本號;本實(shí)施例中,作為一可選實(shí)施例,調(diào)用GetVersionEx函數(shù),從返回的OSVERSIONINFO信息中獲取主版本號和次版本號。主次版本號處理模塊23,如果所述主版本號大于或等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號大于或等于預(yù)先設(shè)置的次版本號閾值;本實(shí)施例中,作為一可選實(shí)施例,所述主版本號閾值設(shè)置為6,次版本號閾值設(shè)置為2。本實(shí)施例中,作為一可選實(shí)施例,主次版本號處理模塊23還用于如果所述主版本號小于預(yù)先設(shè)置的主版本號閾值,或,所述主版本號等于預(yù)先設(shè)置的主版本號閾值,且所述次版本號小于預(yù)先設(shè)置的次版本號閾值;查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。第二函數(shù)調(diào)用模塊24,用于調(diào)用系統(tǒng)版本號獲取函數(shù),再次獲取當(dāng)前操作系統(tǒng)主次版本信息中包含的主版本號和次版本號;本實(shí)施例中,作為一可選實(shí)施例,系統(tǒng)版本號獲取函數(shù)為RtlGetNtVersionNumbers函數(shù),該RtlGetNtVersionNumbers函數(shù)為微軟一未公開的未文檔化的函數(shù),在動(dòng)態(tài)鏈接庫模塊(ntdll.dll)中定義和保存。本實(shí)施例中,作為一可選實(shí)施例,第二函數(shù)調(diào)用模塊24包括:基地址獲取單元、函數(shù)地址獲取單元以及主次版本信息獲取單元(圖中未示出),其中,基地址獲取單元,用于調(diào)用模塊句柄獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)所屬的內(nèi)核文件動(dòng)態(tài)鏈接庫模塊的模塊基地址;本實(shí)施例中,作為一可選實(shí)施例,模塊句柄獲取函數(shù)為::GetModuleHandle(_T(″ntdll.dll″))函數(shù),內(nèi)核文件動(dòng)態(tài)鏈接庫模塊為ntdll.dll模塊。函數(shù)地址獲取單元,用于以所述模塊基地址為參數(shù),調(diào)用進(jìn)程地址獲取函數(shù),獲取所述系統(tǒng)版本號獲取函數(shù)的函數(shù)地址;本實(shí)施例中,作為一可選實(shí)施例,進(jìn)程地址獲取函數(shù)為::GetProcAddress函數(shù)。主次版本信息獲取單元,用于依據(jù)獲取的函數(shù)地址,調(diào)用所述系統(tǒng)版本號獲取函數(shù),獲取當(dāng)前操作系統(tǒng)主次版本信息。版本信息獲取模塊25,用于查詢預(yù)先設(shè)置的主次版本號與操作系統(tǒng)版本信息的映射關(guān)系集,獲取再次獲取的所述主版本號和所述次版本號映射的操作系統(tǒng)版本信息。本實(shí)施例的裝置,可以用于執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,″計(jì)算機(jī)可讀介質(zhì)″可以是任何可以包含、存儲(chǔ)、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤盒(磁裝置),隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(ROM),可擦除可編輯只讀存儲(chǔ)器(EPROM或閃速存儲(chǔ)器),光纖裝置,以及便攜式光盤只讀存儲(chǔ)器(CDROM)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對數(shù)據(jù)信號實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。本發(fā)明實(shí)施例還提供一種電子設(shè)備,所述電子設(shè)備包含前述任一實(shí)施例所述的裝置。圖3為本發(fā)明電子設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,可以實(shí)現(xiàn)本發(fā)明圖1-2所示實(shí)施例的流程,如圖3所示,上述電子設(shè)備可以包括:殼體31、處理器32、存儲(chǔ)器33、電路板34和電源電路35,其中,電路板34安置在殼體31圍成的空間內(nèi)部,處理器32和存儲(chǔ)器33設(shè)置在電路板34上;電源電路35,用于為上述電子設(shè)備的各個(gè)電路或器件供電;存儲(chǔ)器33用于存儲(chǔ)可執(zhí)行程序代碼;處理器32通過讀取存儲(chǔ)器33中存儲(chǔ)的可執(zhí)行程序代碼來運(yùn)行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一實(shí)施例所述的獲取操作系統(tǒng)版本信息的方法。處理器32對上述步驟的具體執(zhí)行過程以及處理器32通過運(yùn)行可執(zhí)行程序代碼來進(jìn)一步執(zhí)行的步驟,可以參見本發(fā)明圖1-2所示實(shí)施例的描述,在此不再贅述。該電子設(shè)備以多種形式存在,包括但不限于:(1)移動(dòng)通信設(shè)備:這類設(shè)備的特點(diǎn)是具備移動(dòng)通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(jī)(例如iPhone)、多媒體手機(jī)、功能性手機(jī),以及低端手機(jī)等。(2)超移動(dòng)個(gè)人計(jì)算機(jī)設(shè)備:這類設(shè)備屬于個(gè)人計(jì)算機(jī)的范疇,有計(jì)算和處理功能,一般也具備移動(dòng)上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機(jī),電子書,以及智能玩具和便攜式車載導(dǎo)航設(shè)備。(4)服務(wù)器:提供計(jì)算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計(jì)算機(jī)架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等方面要求較高。(5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。本
技術(shù)領(lǐng)域:
的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當(dāng)然,在實(shí)施本發(fā)明時(shí)可以把各單元/模塊的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁1 2 3