一種窗體動(dòng)態(tài)更新方法
【專利說明】一種窗體動(dòng)態(tài)更新方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及計(jì)算機(jī)技術(shù),特別涉及一種窗體動(dòng)態(tài)更新方法。
【背景技術(shù)】
[0003]現(xiàn)有計(jì)算設(shè)備中,無論是PC機(jī)還是嵌入式計(jì)算設(shè)備中,各類應(yīng)用以窗口形式向用戶展示各類信息,包括圖像、視頻、文字等等,某些具體行業(yè)應(yīng)用還需向用戶展示各類獨(dú)特的信息,例如工業(yè)設(shè)計(jì)的圖紙、布局等等。在這些應(yīng)用中窗體包括通用窗體和專用窗體,例如微軟公司的視窗、谷歌公司的Chrome等等。通常,由于響應(yīng)于用戶指令,或系統(tǒng)運(yùn)行過程中的自動(dòng)觸發(fā)指令經(jīng)常需要對窗體進(jìn)行更新。然而現(xiàn)有技術(shù)中的窗體更新方法往往僅針對同一模型,即僅針對同一應(yīng)用,并不能適應(yīng)不同應(yīng)用的需要。另外,現(xiàn)有技術(shù)中,在每一次窗體更新過程中均需重新驗(yàn)證,這大大拖延了窗體更新的進(jìn)度。本發(fā)明為此提供了一種窗體動(dòng)態(tài)更新方法。
【發(fā)明內(nèi)容】
[0004]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明通過設(shè)置多個(gè)不同版本的動(dòng)態(tài)庫(DLL),同時(shí)設(shè)置用于注冊經(jīng)過驗(yàn)證的窗體對象指針的注冊表,因而提供了一種窗體動(dòng)態(tài)更新方法,包括:步驟1、接收窗體更新指令并響應(yīng)于所述窗體更新指令,調(diào)用身份驗(yàn)證指令,確認(rèn)用于設(shè)置注冊表的當(dāng)前動(dòng)態(tài)庫;步驟2、調(diào)用注冊表設(shè)置指令,通過當(dāng)前動(dòng)態(tài)庫設(shè)置注冊表;步驟3、調(diào)用獲取指令,從注冊表中直接獲取窗體對象指針;步驟4、調(diào)用窗體創(chuàng)建指令,根據(jù)所述窗體對象指針創(chuàng)建新的窗體實(shí)例。
[0005]優(yōu)選地,所述調(diào)用身份驗(yàn)證指令,確認(rèn)用于設(shè)置注冊表的當(dāng)前動(dòng)態(tài)庫包括:調(diào)用身份驗(yàn)證指令,根據(jù)返回的權(quán)限信息確定當(dāng)前應(yīng)用權(quán)限范圍內(nèi)的所有動(dòng)態(tài)庫;調(diào)用動(dòng)態(tài)庫描述指令,根據(jù)返回的動(dòng)態(tài)庫描述信息確定多個(gè)用于設(shè)置注冊表的動(dòng)態(tài)庫;調(diào)用版本號(hào)提取指令,根據(jù)返回的版本號(hào)信息確定與當(dāng)前應(yīng)用相兼容的動(dòng)態(tài)庫作為當(dāng)前動(dòng)態(tài)庫。
[0006]優(yōu)選地,所述通過當(dāng)前動(dòng)態(tài)庫設(shè)置注冊表包括:向當(dāng)前動(dòng)態(tài)庫請求設(shè)置注冊表;當(dāng)前動(dòng)態(tài)庫根據(jù)所述更新指令指示的窗體類型信息選擇相對應(yīng)的窗體對象指針,并將所述窗體對象指針放到注冊表中。
[0007]優(yōu)選地,所述當(dāng)前動(dòng)態(tài)庫是所述多個(gè)用于設(shè)置注冊表的動(dòng)態(tài)庫中的一個(gè)。
[0008]優(yōu)選地,所述窗體更新指令至少指示出更新類型信息、窗體類型信息、窗體尺寸信息等。
[0009]優(yōu)選地,所述更新類型至少包括新增、替換等。
[0010]優(yōu)選地,所述根據(jù)所述窗體對象指針創(chuàng)建新的窗體實(shí)例包括:根據(jù)窗體對象指針確定默認(rèn)窗體對象;實(shí)例化所述默認(rèn)窗體對象得到新的窗體實(shí)例;解析所述窗體更新指令,獲取窗體尺寸信息;根據(jù)所述窗體尺寸信息調(diào)整所述新的窗體實(shí)例。
[0011]優(yōu)選地,在步驟根據(jù)所述窗體對象指針創(chuàng)建新的窗體實(shí)例之后,還包括步驟根據(jù)所述窗體更新指令指示的更新類型顯示所述新的窗體實(shí)例,具體包括:解析所述窗體更新指令,獲取更新類型信息;如果所述更新類型信息指示為新增,則直接顯示所述新的窗體實(shí)例;如果所述更新類型信息指示為替換,則以所述新的窗體實(shí)例替換當(dāng)前顯示的窗體實(shí)例。
[0012]優(yōu)選地,在步驟以所述新的窗體實(shí)例替換當(dāng)前顯示的窗體實(shí)例之后,還包括以下步驟:如果新的窗體實(shí)例顯示在母窗體實(shí)例內(nèi)并且所述新的窗體實(shí)例的尺寸大于所述母窗體實(shí)例,則調(diào)整所述新的窗體實(shí)例的尺寸使得所述新的窗體實(shí)例能夠容納在所述母窗體實(shí)例內(nèi)部。
[0013]優(yōu)選地,將所述新的窗體實(shí)例的尺寸調(diào)整為所述母窗體實(shí)例的尺寸的80%。
[0014]優(yōu)選地,所述直接顯示所述新的窗體實(shí)例包括:如果不存在當(dāng)前顯示的窗體實(shí)例,則將所述新的窗體實(shí)例作為母窗體進(jìn)行顯示;如果存在當(dāng)前顯示的窗體實(shí)例,則將所述新的窗體實(shí)例作為子窗體進(jìn)行顯示。
[0015]優(yōu)選地,在步驟將所述新的窗體實(shí)例作為子窗體進(jìn)行顯示之后,還包括以下步驟:如果所述新的窗體實(shí)例的尺寸大于所述當(dāng)前顯示的窗體實(shí)例,則調(diào)整所述新的窗體實(shí)例的尺寸使得所述新的窗體實(shí)例能夠容納在所述當(dāng)前顯示的窗體實(shí)例內(nèi)部。
[0016]優(yōu)選地,當(dāng)接收到下一窗體更新指令時(shí),首先解析所述下一窗體更新指令,獲取窗體類型信息;接著判斷與所述下一窗體更新指令指示的窗體類型信息相對應(yīng)的窗體對象指針是否已經(jīng)在注冊表中進(jìn)行注冊;如果判斷結(jié)果為是則以所述下一窗體更新指令作為當(dāng)前窗體更新指令并從所述步驟3開始執(zhí)行,否則從所述步驟2開始執(zhí)行。
[0017]優(yōu)選地,所述當(dāng)前動(dòng)態(tài)庫根據(jù)所述更新指令指示的窗體類型信息選擇相對應(yīng)的窗體對象指針包括:解析所述更新指令;獲取窗體類型信息;調(diào)用窗體對象指針獲取指令,根據(jù)所述窗體類型信息從窗體對象指針鏈表中獲取與所述窗體類型信息相對應(yīng)的窗體對象指針。
[0018]優(yōu)選地,所述根據(jù)窗體對象指針確定默認(rèn)窗體對象包括:調(diào)用窗體對象獲取指令,根據(jù)所述窗體對象指針從窗體對象庫中獲取所述默認(rèn)窗體對象。
[0019]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
通過設(shè)置多個(gè)不同版本的動(dòng)態(tài)庫(DLL),使得應(yīng)用本發(fā)明方法的設(shè)備能夠?qū)崿F(xiàn)適應(yīng)不同應(yīng)用的動(dòng)態(tài)更新窗體的需要。
[0020]通過設(shè)置用于注冊經(jīng)過驗(yàn)證的窗體對象指針的注冊表,使得大大降低了窗體更新的時(shí)間成本。
[0021]
【附圖說明】
[0022]圖1是根據(jù)本發(fā)明實(shí)施例的窗體動(dòng)態(tài)更新方法的流程圖。
[0023]
【具體實(shí)施方式】
[0024]下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
[0025]圖1示出根據(jù)本發(fā)明實(shí)施例的窗體動(dòng)態(tài)更新方法的流程圖。如圖1所示,在步驟I中,接收窗體更新指令并響應(yīng)于所述窗體更新指令,調(diào)用身份驗(yàn)證指令,確認(rèn)用于設(shè)置注冊表的當(dāng)前動(dòng)態(tài)庫。其中,窗體更新指令是來自系統(tǒng)其它應(yīng)用或進(jìn)程發(fā)送給當(dāng)前應(yīng)用的,由當(dāng)前應(yīng)用主程序接收窗體更新指令。當(dāng)前應(yīng)用主程序通過接口程序調(diào)用身份驗(yàn)證指令,從而在多個(gè)動(dòng)態(tài)庫中確認(rèn)用于設(shè)置注冊表的當(dāng)前動(dòng)態(tài)庫。其中,所述調(diào)用身份驗(yàn)證指令,確認(rèn)用于設(shè)置注冊表的當(dāng)前動(dòng)態(tài)庫包括:調(diào)用身份驗(yàn)證指令,根據(jù)返回的權(quán)限信息確定當(dāng)前應(yīng)用權(quán)限范圍內(nèi)的所有動(dòng)態(tài)庫;調(diào)用動(dòng)態(tài)庫描述指令,根據(jù)返回的動(dòng)態(tài)庫描述信息確定多個(gè)用于設(shè)置注冊表的動(dòng)態(tài)庫;調(diào)用版本號(hào)提取指令,根據(jù)返回的版本號(hào)信息確定與當(dāng)前應(yīng)用相兼容的動(dòng)態(tài)庫作為當(dāng)前動(dòng)態(tài)庫。其中,由所述當(dāng)前應(yīng)用的主程序通過接口程序分別調(diào)用所述身份驗(yàn)證指令、所述動(dòng)態(tài)庫描述指令和所述版本號(hào)提取指令。其中,所述當(dāng)前動(dòng)態(tài)庫是所述多個(gè)用于設(shè)置注冊表的動(dòng)態(tài)庫中的一個(gè)。所述多個(gè)用于設(shè)置注冊表的動(dòng)態(tài)庫均來自所述所有動(dòng)態(tài)庫。其中,如果與當(dāng)前應(yīng)用相兼容的動(dòng)態(tài)庫存在多個(gè)版本,則選擇最新版本的動(dòng)態(tài)庫作為當(dāng)前動(dòng)態(tài)庫。
[0026]在步驟2中,調(diào)用注冊表設(shè)置指令,通過當(dāng)前動(dòng)態(tài)庫設(shè)置注冊表。其中,由所述當(dāng)前應(yīng)用的主程序通過接口程序調(diào)用注冊表設(shè)置指令。所述通過當(dāng)前動(dòng)態(tài)庫設(shè)置注冊表包括:向當(dāng)前動(dòng)態(tài)庫請求設(shè)置注冊表;當(dāng)前動(dòng)態(tài)庫根據(jù)所述更新指令指示的窗體類型信息選擇相對應(yīng)的窗體對象指針,并將所述窗體對象指針放到注冊表中。其中,所述窗體更新指令至少指示出更新類型信息、窗體類型信息、窗體尺寸信息等;所述更新類型至少包括新增、替換等。在當(dāng)前動(dòng)態(tài)庫將所述窗體對象指針放到注冊表中之后,向所述當(dāng)前應(yīng)用的主程序返回確認(rèn)消息,所述確認(rèn)消息至少包括指示所述窗體對象指針在所述注冊表中的鍵的信息,所述鍵是所述注冊表中各個(gè)值的唯一索引信息。
[0027]