一種控件創(chuàng)建方法和調(diào)用方法及系統(tǒng)的制作方法
【專利摘要】本申請公開了一種控件創(chuàng)建方法,包括:獲取控件文件的版本號;生成全局唯一標識符GUID;由控件名稱和所述版本號組成鍵名稱ClassID;建立所述GUID與所述ClassID之間的對應關(guān)系;將所述GUID作為控件注冊表中所述控件文件的唯一位置標識。本申請中不同版本的同一名稱的控件在注冊表中的位置標識不同,解決了傳統(tǒng)方法中同一名稱的不同版本的控件在注冊表中的位置標識一樣,而造成的無法準確調(diào)用的問題。
【專利說明】一種控件創(chuàng)建方法和調(diào)用方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請涉及企業(yè)信息管理系統(tǒng)【技術(shù)領(lǐng)域】,更具體地說,涉及一種控件創(chuàng)建方法和調(diào)用方法及系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)的系統(tǒng)客戶端在使用Active控件時,通過讀取注冊表來加載控件,注冊表中的一個全局唯一標識⑶ID只能指向唯一控件注冊位置,而遇到多個版本的控件需要共存運行時,由于多個版本的控件名稱相同,其全局唯一標識GUID也相同,所有會出現(xiàn)無法動態(tài)加載對應版本的控件的問題。
[0003]現(xiàn)有技術(shù)方案是在登陸不同版本服務(wù)時,在入口自動調(diào)用Microsoft(C)RegisterServer將注冊路徑切換至對應版本客戶端注冊地址。雖然解決了多版本共同使用的問題,但是在切換版本時必須對全部控件進行掃描注冊,直接影響系統(tǒng)整體性能,進而影響用戶體驗效果。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本申請?zhí)峁┝艘环N控件創(chuàng)建方法和調(diào)用方法及系統(tǒng),用于在不影響系統(tǒng)整體性能的前提下,使客戶端機器能夠在不同版本的控件間任意切換。
[0005]為了實現(xiàn)上述目的,現(xiàn)提出的方案如下:
[0006]一種控件創(chuàng)建方法,包括:
[0007]獲取控件文件的版本號;
[0008]生成全局唯一標識符⑶ID ;
[0009]由控件名稱和所述版本號組成鍵名稱ClassID ;
[0010]建立所述⑶ID與所述ClassID之間的對應關(guān)系;
[0011]將所述⑶ID作為控件注冊表中所述控件文件的唯一位置標識。
[0012]優(yōu)選地,所述生成全局唯一標識符⑶ID,具體為:
[0013]使用微軟通用算法生成全局唯一標識符⑶ID。
[0014]優(yōu)選地,所述獲取控件文件的版本號具體為:
[0015]通過常量VERS10N_INF0記錄控件文件的版本號。
[0016]一種控件調(diào)用方法,包括:
[0017]接收用戶輸入的控件名稱;
[0018]識別用戶登錄的控件文件系統(tǒng)的版本號;
[0019]將所述控件名稱和所述版本號組合成的鍵名稱與存儲的ClassID進行匹配,查找到匹配ClassID ;
[0020]根據(jù)⑶ID與ClassID之間的對應關(guān)系,查找與所述匹配ClassID相對應的⑶ID ;
[0021]根據(jù)查找到的與匹配ClassID相對應的⑶ID,調(diào)用控件文件。
[0022]一種控件創(chuàng)建系統(tǒng),包括:[0023]版本號獲取單元,用于獲取控件文件的版本號;
[0024]標識符生成單元,用于生成全局唯一標識符⑶ID ;
[0025]鍵名稱生成單元,用于將控件名稱和所述版本號組合成鍵名稱ClassID,并且建立所述⑶ID與所述ClassID之間的對應關(guān)系;
[0026]位置確定單元,用于將所述⑶ID作為控件注冊表中所述控件文件的唯一位置標識。
[0027]優(yōu)選地,所述鍵名稱生成單元包括:
[0028]鍵名稱組成單元,用于將控件名稱和所述版本號組合成鍵名稱ClassID ;
[0029]關(guān)系建立單元,用于建立所述⑶ID與所述ClassID之間的對應關(guān)系。
[0030]優(yōu)選地,所述標識符生成單元在生成全局唯一標識符⑶ID的過程中,具體為:利用微軟通用算法生成全局唯一標識符⑶ID。
[0031]優(yōu)選地,所述版本號獲取單元在獲取控件文件的版本號的過程中,具體為:通過常量VERS10N_INF0記錄控件文件的版本號。
[0032]一種控件調(diào)用系統(tǒng),包括:
[0033]控件名稱接收單元,用于接收用戶輸入的控件名稱;
[0034]版本號識別單元,用于識別用戶登錄的控件文件系統(tǒng)的版本號;
[0035]鍵名稱查找單元,用于將所述控件名稱和所述版本號組合成的鍵名稱與存儲的ClassID進行匹配,查找到匹配ClassID ;
[0036]標識符獲取單元,用于根據(jù)⑶ID與ClassID之間的對應關(guān)系,查找與所述匹配ClassID相對應的⑶ID ;
[0037]控件文件調(diào)用單元,用于根據(jù)查找到的與匹配ClassID相對應的⑶ID,調(diào)用控件文件。
[0038]優(yōu)選地,所述鍵名稱查找單元包括:
[0039]鍵名稱組成單元,用于將所述控件名稱和所述版本號組合成鍵名稱ClassID ;
[0040]鍵名稱匹配單元,用于匹配所述組合成的鍵名稱與存儲的ClassID,查找到匹配ClassID0
[0041]從上述的技術(shù)方案可以看出,本申請公開的控件創(chuàng)建方法,通過獲取控件文件的版本號并生成全局唯一標識符,將控件名稱和版本號組合成鍵名稱ClassID,并建立鍵名稱和全局唯一標識符間的對應關(guān)系,最后以全局唯一標識符作為控件注冊表中控件文件的唯一位置標識,這樣不同版本的同一名稱的控件在注冊表中的位置標識得以區(qū)分開來,解決了傳統(tǒng)方法中同一名稱的不同版本的控件在注冊表中的位置標識一樣,而造成的無法準確調(diào)用的問題。
【專利附圖】
【附圖說明】
[0042]為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0043]圖1為本申請實施例公開的一種控件創(chuàng)建方法流程圖;[0044]圖2為本申請實施例公開的一種控件調(diào)用方法流程圖;
[0045]圖3為本申請實施例公開的一種控件創(chuàng)建系統(tǒng)結(jié)構(gòu)圖;
[0046]圖4為本申請實施例公開的鍵名稱生成單元結(jié)構(gòu)圖;
[0047]圖5為本申請實施例公開的一種控件調(diào)用系統(tǒng)結(jié)構(gòu)圖;
[0048]圖6為本申請實施例公開的鍵名稱查找單元結(jié)構(gòu)圖。
【具體實施方式】
[0049]下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
[0050]參見圖1,圖1為本申請實施例公開的一種控件創(chuàng)建方法流程圖。
[0051 ] 如圖1所示,該方法包括:
[0052]步驟101:獲取控件文件的版本號;
[0053]具體地,在客戶端的機器上,可能同時需要存在多個不同版本的控件文件,此時需要獲取當前所創(chuàng)建的控件文件的版本號。
[0054]步驟102:生成全局唯一標識符 GUID (Globally Unique IDentifier);
[0055]步驟103:由控件名稱和所述版本號組成鍵名稱ClassID ;
[0056]具體地,我們將控件名稱和該控件的版本號進行組合,二者構(gòu)成一個鍵名稱ClassID,這樣同一名稱的不同版本的控件,即可通過鍵名稱的不同而區(qū)分開來。
[0057]步驟104:建立所述⑶ID與所述ClassID之間的對應關(guān)系;
[0058]具體地,我們在⑶ID和ClassID之間建立起一對一的關(guān)系,每一個ClassID都對應于一個唯一的⑶ID。
[0059]步驟105:將所述⑶ID作為控件注冊表中所述控件文件的唯一位置標識。
[0060]具體地,將⑶ID作為控件注冊表中某一個控件文件的唯一位置標識,通過該⑶ID即可對應該控件文件的存儲地址。即,將該GUID作為鍵名稱,查找其數(shù)值項即存儲地址,進而調(diào)用該存儲地址中的控件文件。
[0061]本實施例公開的控件創(chuàng)建方法,通過獲取控件文件的版本號并生成全局唯一標識符,將控件名稱和版本號組合成鍵名稱ClassID,并建立鍵名稱和全局唯一標識符間的對應關(guān)系,最后以全局唯一標識符作為控件注冊表中控件文件的唯一位置標識,這樣不同版本的同一名稱的控件在注冊表中的位置標識得以區(qū)分開來,解決了傳統(tǒng)方法中同一名稱的不同版本的控件在注冊表中的位置標識一樣,而造成的無法準確調(diào)用的問題。
[0062]需要說明的是,在獲取控件文件的版本號時,我們可以通過常量VERS10N_INF0記錄控件文件的版本號,舉例:VERS10N_INF0=’ V7.6’,即表示當前控件的版本號為V7.6。
[0063]需要說明的是,在生成全局唯一標識符⑶ID時,我們可以使用微軟提供的通用算法來生成全局唯一標識符GUID,當然也可以使用其它算法來生成該標識符。
[0064]下面我們通過一個例子來說明本實施例公開的方法:
[0065]首先通過常量VERS10N_INF0來記錄控件的版本號,VERS10N_INF0=’ V7.6’。根據(jù)上述版本號生成全局唯一標識符⑶ID:[0066]{2DAAA8B7-2655-4ADD-9I71-96255844B332}。
[0067]然后,將控件名稱和版本號組成鍵名稱ClassID:YGFmisGrid_V7.6,其中YGFmisGrid為控件的名稱,V7.6代表該控件的版本號。在⑶ID和ClassID之間建立對應關(guān)系。
[0068]最后,將YGFmisGrid_V7.6控件在注冊表中的位置標識用⑶ID {2DAAA8B7-2655-4ADD-9171-96255844B332}來表示。
[0069]將該⑶ID作為鍵名稱,查找其對應數(shù)值項即存儲地址。
[0070]現(xiàn)有的方法,建立過程如下:
[0071]控件的鍵名稱ClassID為YGFmisGrid,與鍵名稱相對應的⑶ID為:
[0072]{1989A1B6-3DF2-422B-82D0-44A3858F3FD0}。
[0073]將上述⑶ID作為YGFmisGrid控件在注冊表中的唯一位置標識。這樣,在調(diào)用名稱為YGFmisGrid的不同版本的控件時,只能夠找到最新一次注冊的⑶ID為{1989A1B6-3DF2-422B-82D0-44A3858F3FD0}的控件,而無法調(diào)用其它版本的同名控件。
[0074]實施例二
[0075]參見圖2,圖2為本申請實施例公開的一種控件調(diào)用方法流程圖。
[0076]如圖2所示,該方法包括:
[0077]步驟201:接收用戶輸入的控件名稱;
[0078]具體地,用戶想調(diào)用什么控件必須輸入該控件的名稱。
[0079]步驟202:識別用戶登錄的控件文件系統(tǒng)的版本號;
[0080]具體地,系統(tǒng)識別出用戶登錄的當前控件文件系統(tǒng)的版本號。
[0081]步驟203:將所述控件名稱和所述版本號組合成的鍵名稱與存儲的ClassID進行匹配,查找到匹配ClassID ;
[0082]具體地,系統(tǒng)根據(jù)識別出的版本號,將控件名稱和當前版本號進行組合,然后將組合成的鍵名稱與存儲的鍵名稱ClassID進行匹配,查找相互匹配的ClassID。
[0083]步驟204:根據(jù)⑶ID與ClassID之間的對應關(guān)系,查找與所述匹配ClassID相對應的GUID ;
[0084]具體地,根據(jù)實施例一中介紹的控件中存儲的⑶ID與ClassID之間的對應關(guān)系,查找與步驟203中的匹配ClassID相對應的⑶ID。
[0085]步驟205:根據(jù)查找到的與匹配ClassID相對應的⑶ID,調(diào)用控件文件。
[0086]具體地,根據(jù)找到的控件注冊表中的GUID,查找其數(shù)值項即存儲地址,調(diào)用對應的控件文件。
[0087]本實施中,用戶只需要輸入控件名稱,然后由系統(tǒng)自動識別當前版本的版本號,然后通過后臺將控件名稱與版本號進行組合,查找與之對應的鍵名稱和全局唯一標識符GUID,進而根據(jù)查找到的GUID在注冊表中調(diào)用對應的控件,展現(xiàn)給用戶。這個過程中用戶是透明的,不需要做額外的動作即可查找到當前版本的控件文件。
[0088]實施例三
[0089]參見圖3,圖3為本申請實施例公開的一種控件創(chuàng)建系統(tǒng)結(jié)構(gòu)圖。
[0090]如圖3所示,該系統(tǒng)包括:
[0091]版本號獲取單元31,用于獲取控件文件的版本號;[0092]標識符生成單元32,用于生成全局唯一標識符⑶ID ;
[0093]鍵名稱生成單元33,用于將控件名稱和所述版本號組合成鍵名稱ClassID,并且建立所述⑶ID與所述ClassID之間的對應關(guān)系;
[0094]位置確定單元34,用于將所述⑶ID作為控件注冊表中所述控件文件的唯一位置標識。
[0095]本實施例公開的控件創(chuàng)建系統(tǒng),通過獲取控件文件的版本號并生成全局唯一標識符,將控件名稱和版本號組合成鍵名稱ClassID,并建立鍵名稱和全局唯一標識符間的對應關(guān)系,最后以全局唯一標識符作為控件注冊表中控件文件的唯一位置標識,這樣不同版本的同一名稱的控件在注冊表中的位置標識得以區(qū)分開來,解決了傳統(tǒng)方法中同一名稱的不同版本的控件在注冊表中的位置標識一樣,而造成的無法準確調(diào)用的問題。
[0096]需要說明的是,版本號獲取單元31在獲取控件文件的版本號的過程中,具體為使用常量VERS10N_INF0記錄控件文件的版本號。
[0097]需要說明的是,標識符生成單元32在生成全局唯一標識符⑶ID的過程中,具體為利用微軟提供的通用算法生成全局唯一標識符。
[0098]實施例四
[0099]參見圖4,圖4為本申請實施例公開的鍵名稱生成單元結(jié)構(gòu)圖。
[0100]如圖4所示,鍵名稱生成單元33可以進一步分為鍵名稱組成單元331和關(guān)系建立單元332,分別用于將控件名稱和版本號組合成鍵名稱ClassID以及建立⑶ID與ClassID之間的對應關(guān)系。
[0101]實施例五
[0102]參見圖5,圖5為本申請實施例公開的一種控件調(diào)用系統(tǒng)結(jié)構(gòu)圖。
[0103]如圖5所示,該系統(tǒng)包括:
[0104]控件名稱接收單元51,用于接收用戶輸入的控件名稱;
[0105]版本號識別單元52,用于識別用戶登錄的控件文件系統(tǒng)的版本號;
[0106]鍵名稱查找單元53,用于將所述控件名稱和所述版本號組合成的鍵名稱與存儲的ClassID進行匹配,查找到匹配ClassID ;
[0107]標識符獲取單元54,用于根據(jù)⑶ID與ClassID之間的對應關(guān)系,查找與所述匹配ClassID相對應的⑶ID ;
[0108]控件文件調(diào)用單元55,用于根據(jù)查找到的與匹配ClassID相對應的⑶ID,調(diào)用控件文件。
[0109]本實施例介紹的控件調(diào)用系統(tǒng)是與實施例二公開的控件調(diào)用方法相對應的,細節(jié)參考實施例二的介紹。
[0110]本實施中,用戶只需要輸入控件名稱,然后由系統(tǒng)自動識別當前版本的版本號,然后通過后臺將控件名稱與版本號進行組合,查找與之對應的鍵名稱和全局唯一標識符GUID,進而根據(jù)查找到的GUID在注冊表中調(diào)用對應的控件,展現(xiàn)給用戶。這個過程中用戶是透明的,不需要做額外的動作即可查找到當前版本的控件文件。
[0111]需要說明的是,參見圖6,圖6為本申請實施例公開的鍵名稱查找單元結(jié)構(gòu)圖。鍵名稱查找單元53還可以進一步分為鍵名稱組成單元531和鍵名稱匹配單元532,其中鍵名稱組成單元531用來將控件名稱和版本號組合成鍵名稱ClassID,鍵名稱匹配單元532用來匹配組合成的鍵名稱和存儲的鍵名稱ClassID,并找出相互匹配的鍵名稱ClassID。
[0112]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。[0113]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
[0114]對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權(quán)利要求】
1.一種控件創(chuàng)建方法,其特征在于,包括: 獲取控件文件的版本號; 生成全局唯一標識符⑶ID ; 由控件名稱和所述版本號組成鍵名稱ClassID ; 建立所述⑶ID與所述ClassID之間的對應關(guān)系; 將所述GUID作為控件注冊表中所述控件文件的唯一位置標識。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述生成全局唯一標識符GUID,具體為: 使用微軟通用算法生成全局唯一標識符⑶ID。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取控件文件的版本號具體為: 通過常量VERSION_INFO記錄控件文件的版本號。
4.一種控件調(diào)用方法,其特征在于,包括: 接收用戶輸入的控件名稱; 識別用戶登錄的控件文件系統(tǒng)的版本號; 將所述控件名稱和所述版本號組合成的鍵名稱與存儲的ClassID進行匹配,查找到匹配 ClassID ; 根據(jù)⑶ID與ClassID之間的對應關(guān)系,查找與所述匹配ClassID相對應的⑶ID ; 根據(jù)查找到的與匹配ClassID相對應的⑶ID,調(diào)用控件文件。
5.一種控件創(chuàng)建系統(tǒng),其特征在于,包括: 版本號獲取單元,用于獲取控件文件的版本號; 標識符生成單元,用于生成全局唯一標識符⑶ID ; 鍵名稱生成單元,用于將控件名稱和所述版本號組合成鍵名稱ClassID,并且建立所述⑶ID與所述ClassID之間的對應關(guān)系; 位置確定單元,用于將所述GUID作為控件注冊表中所述控件文件的唯一位置標識。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述鍵名稱生成單元包括: 鍵名稱組成單元,用于將控件名稱和所述版本號組合成鍵名稱ClassID ; 關(guān)系建立單元,用于建立所述⑶ID與所述ClassID之間的對應關(guān)系。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述標識符生成單元在生成全局唯一標識符⑶ID的過程中,具體為:利用微軟通用算法生成全局唯一標識符⑶ID。
8.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述版本號獲取單元在獲取控件文件的版本號的過程中,具體為:通過常量VERSION_INFO記錄控件文件的版本號。
9.一種控件調(diào)用系統(tǒng),其特征在于,包括: 控件名稱接收單元,用于接收用戶輸入的控件名稱; 版本號識別單元,用于識別用戶登錄的控件文件系統(tǒng)的版本號; 鍵名稱查找單元,用于將所述控件名稱和所述版本號組合成的鍵名稱與存儲的ClassID進行匹配,查找到匹配ClassID ; 標識符獲取單元,用于根據(jù)⑶ID與ClassID之間的對應關(guān)系,查找與所述匹配ClassID相對應的⑶ID ; 控件文件調(diào)用單元,用于根據(jù)查找到的與匹配ClassID相對應的⑶ID,調(diào)用控件文件。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述鍵名稱查找單元包括:鍵名稱組成單元,用于將所述控件名稱和所述版本號組合成鍵名稱ClassID ; 鍵名稱匹配單元,用 于匹配所述組合成的鍵名稱與存儲的ClassID,查找到匹配ClassID0
【文檔編號】G06F9/48GK103823671SQ201310737252
【公開日】2014年5月28日 申請日期:2013年12月26日 優(yōu)先權(quán)日:2013年12月26日
【發(fā)明者】吳可 申請人:遠光軟件股份有限公司