Vdi環(huán)境下桌面窗口元素的跟蹤識別方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種VDI環(huán)境下桌面窗口元素的跟蹤識別方法及系統(tǒng),所述方法包括步驟1、枚舉用戶態(tài)當前會話的所有窗口元素的句柄;步驟2、根據(jù)句柄監(jiān)控窗口元素的變化;步驟3、保存當前桌面所有待跟蹤的窗口,并將窗口的信息列表傳到內(nèi)核態(tài);步驟4、為每一個待跟蹤的窗口均創(chuàng)建一個窗口狀態(tài)變化引擎及唯一的標識符;步驟5、根據(jù)窗口狀態(tài)變化引擎跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變和編碼;步驟6、將編碼后的窗口傳到終端顯示。本發(fā)明還提供一種VDI環(huán)境下桌面窗口元素的跟蹤識別系統(tǒng),本發(fā)明優(yōu)點是:使傳輸?shù)接脩艚K端的數(shù)據(jù)量變小,也降低了帶寬,改善了用戶的體驗。
【專利說明】VDI環(huán)境下桌面窗口元素的跟蹤識別方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及一種VDI環(huán)境下桌面窗口元素的跟蹤識別方法及系統(tǒng)。
【背景技術】
[0002]在VDI (虛擬桌面基礎架構)環(huán)境下,我們需要通過帶寬受限的網(wǎng)絡向終端交付操作系統(tǒng)的桌面,操作系統(tǒng)的桌面是由一個個窗口構成的,窗口的種類又是多樣的,窗口元素也會發(fā)生變化,這使得在傳輸?shù)倪^程中會占用較多帶寬,且無法對窗口元素發(fā)生的變化進行跟蹤識別,降低了用戶的體驗。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術問題,在于提供一種VDI環(huán)境下桌面窗口元素的跟蹤識別方法及系統(tǒng),通過對桌面窗口元素進行分解和跟蹤,并對不同類型的窗口采用不同的編碼方式進行編碼,使傳輸?shù)接脩艚K端的數(shù)據(jù)量變小,也降低了帶寬,改善了用戶的體驗。
[0004]本發(fā)明要解決的技術問題之一是這樣實現(xiàn)的:VDI環(huán)境下桌面窗口元素的跟蹤識別方法,所述VDI將操作系統(tǒng)及應用程序統(tǒng)一放到數(shù)據(jù)中心的服務器中運行,將用戶的桌面進行虛擬化,所述操作系統(tǒng)包括用戶態(tài)和內(nèi)核態(tài);所述方法包括如下步驟:
[0005]步驟1、枚舉用戶態(tài)當前會話的所有窗口元素的句柄;
[0006]步驟2、根據(jù)句柄監(jiān)控用戶態(tài)當前會話及窗口站的改變,進而監(jiān)控窗口元素的變化;
[0007]步驟3、保存用戶態(tài)當前桌面所有待跟蹤的窗口,并將窗口的信息列表發(fā)送給內(nèi)核態(tài);
[0008]步驟4、為內(nèi)核態(tài)中每一個待跟蹤的窗口均創(chuàng)建一個窗口狀態(tài)變化引擎,用于跟蹤獲取窗口元素的變化數(shù)據(jù),同時也為每一個待跟蹤的窗口均創(chuàng)建一個唯一的標識符;
[0009]步驟5、根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變和編碼;
[0010]步驟6、將編碼后的窗口發(fā)送到用戶終端進行顯示。
[0011]進一步地,所述窗口元素的變化數(shù)據(jù)包括窗口位置、窗口大小、窗口可視區(qū)域及窗口標識。
[0012]進一步地,所述預先設定的處理策略是預先根據(jù)窗口元素的變化,設定要對窗口進行的改變。
[0013]進一步地,所述步驟5進一步具體為:先根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變,然后對不同類型的窗口采用不同的編碼方式進行編碼。
[0014]本發(fā)明要解決的技術問題之二是這樣實現(xiàn)的:VDI環(huán)境下桌面窗口元素的跟蹤識別系統(tǒng),所述VDI將操作系統(tǒng)及應用程序統(tǒng)一放到數(shù)據(jù)中心的服務器中運行,將用戶的桌面進行虛擬化,所述操作系統(tǒng)包括用戶態(tài)和內(nèi)核態(tài);所述系統(tǒng)包括:
[0015]窗口枚舉模塊,枚舉用戶態(tài)當前會話的所有窗口元素的句柄;
[0016]會話監(jiān)控模塊,根據(jù)句柄監(jiān)控用戶態(tài)當前會話及窗口站的改變,進而監(jiān)控窗口元素的變化;
[0017]窗口保存模塊,保存用戶態(tài)當前桌面所有待跟蹤的窗口,并將窗口的信息列表發(fā)送給內(nèi)核態(tài);
[0018]虛擬顯卡模塊,為內(nèi)核態(tài)中每一個待跟蹤的窗口均創(chuàng)建一個窗口狀態(tài)變化引擎,用于跟蹤獲取窗口元素的變化數(shù)據(jù),同時也為每一個待跟蹤的窗口均創(chuàng)建一個唯一的標識符;
[0019]數(shù)據(jù)編碼模塊,根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變和編碼;
[0020]數(shù)據(jù)傳輸模塊,將編碼后的窗口發(fā)送到用戶終端進行顯示。
[0021]進一步地,所述窗口元素的變化數(shù)據(jù)包括窗口位置、窗口大小、窗口可視區(qū)域及窗口標識。
[0022]進一步地,所述預先設定的處理策略是預先根據(jù)窗口元素的變化,設定要對窗口進行的改變。
[0023]進一步地,所述數(shù)據(jù)編碼模塊進一步具體為:先根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變,然后對不同類型的窗口采用不同的編碼方式進行編碼。
[0024]本發(fā)明具有如下優(yōu)點:實現(xiàn)了對操作系統(tǒng)桌面窗口元素的分解和跟蹤,并對不同類型的窗口采用不同的編碼方式進行編碼,這不僅減少了傳輸?shù)接脩艚K端的數(shù)據(jù)量,且降低了帶寬,改善了用戶的體驗。
【專利附圖】
【附圖說明】
[0025]下面參照附圖結合實施例對本發(fā)明作進一步的說明。
[0026]圖1為本發(fā)明VDI環(huán)境下桌面窗口元素的跟蹤識別方法的流程框圖。
[0027]圖2為本發(fā)明VDI環(huán)境下桌面窗口元素的跟蹤識別系統(tǒng)的結構框圖。
【具體實施方式】
[0028]請參照圖1所示,本發(fā)明VDI環(huán)境下桌面窗口元素的跟蹤識別方法,所述VDI將操作系統(tǒng)及應用程序統(tǒng)一放到數(shù)據(jù)中心的服務器中運行,將用戶的桌面進行虛擬化,所述操作系統(tǒng)(例如windows操作系統(tǒng))包括用戶態(tài)和內(nèi)核態(tài);所述方法具體包括如下步驟:
[0029]步驟1、枚舉用戶態(tài)當前會話的所有窗口元素的句柄;
[0030]步驟2、根據(jù)句柄監(jiān)控用戶態(tài)當前會話及窗口站(winstat1n)的改變,進而監(jiān)控窗口元素的變化;窗口站(winstat1n)是一個安全對象,它包含一個剪貼板、一系列的全局原子以及一組桌面對象,一個交互式窗口站不僅對用戶可見,且還可以接受來自用戶的輸入。其中對當前會話及窗口站(winstat1n)進行監(jiān)控的原因是:由于窗口元素與當前會話及窗口站(winstat1n)密切相關,只有對它們進行監(jiān)控,才能進一步準確監(jiān)控窗口元素的變化;
[0031]步驟3、保存用戶態(tài)當前桌面所有待跟蹤的窗口,并將窗口的信息列表發(fā)送給內(nèi)核態(tài);這里假設windows桌面上共有10個待跟蹤的窗口,那就先對這10個窗口進行保存,然后將10個窗口的信息列表發(fā)送給內(nèi)核態(tài);
[0032]步驟4、為內(nèi)核態(tài)中每一個待跟蹤的窗口均創(chuàng)建一個窗口狀態(tài)變化引擎,用于跟蹤獲取窗口元素的變化數(shù)據(jù),同時也為每一個待跟蹤的窗口均創(chuàng)建一個唯一的標識符,該唯一的標識符用于準確識別窗口 ;所述窗口元素的變化數(shù)據(jù)包括窗口位置、窗口大小、窗口可視區(qū)域及窗口標識,所述窗口狀態(tài)變化引擎還會對每一個窗口元素的變化數(shù)據(jù)進行保存,實現(xiàn)對窗口的跟蹤;
[0033]步驟5、根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變和編碼;所述預先設定的處理策略是預先根據(jù)窗口元素的變化,設定要對窗口進行的改變;該步驟進一步具體為:先根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變(例如預先設定窗口高度的變化在0.2cm?0.25cm范圍內(nèi)時,統(tǒng)一對窗口調(diào)整0.2cm,那么當跟蹤獲取的窗口高度的變化在上述范圍時,我們就對窗口調(diào)整一個0.2cm的高度),然后對不同類型的窗口采用不同的編碼方式進行編碼,例如圖形窗口可以采用JPEG編碼,視頻窗口可以
H.264編碼等;
[0034]步驟6、將編碼后的窗口傳送給用戶終端進行顯示,供用戶進行體驗。
[0035]請參照圖2所示,本發(fā)明VDI環(huán)境下桌面窗口元素跟蹤識別系統(tǒng),所述VDI將操作系統(tǒng)及應用程序統(tǒng)一放到數(shù)據(jù)中心的服務器中運行,將用戶的桌面進行虛擬化,所述操作系統(tǒng)(例如windows操作系統(tǒng))包括用戶態(tài)和內(nèi)核態(tài);所述系統(tǒng)包括
[0036]窗口枚舉模塊,枚舉用戶態(tài)當前會話的所有窗口元素的句柄;
[0037]會話監(jiān)控模塊,根據(jù)句柄監(jiān)控用戶態(tài)當前會話及窗口站(winstat1n)的改變,進而監(jiān)控窗口元素的變化;窗口站(winstat1n)是一個安全對象,它包含一個剪貼板、一系列的全局原子以及一組桌面對象,一個交互式窗口站不僅對用戶可見,且還可以接受來自用戶的輸入。其中對當前會話及窗口站(winstat1n)進行監(jiān)控的原因是:由于窗口元素與當前會話及窗口站(winstat1n)密切相關,只有對它們進行監(jiān)控,才能進一步準確監(jiān)控窗口元素的變化;
[0038]窗口保存模塊,保存用戶態(tài)當前桌面所有待跟蹤的窗口,并將窗口的信息列表發(fā)送給內(nèi)核態(tài);這里假設windows桌面上共有10個待跟蹤的窗口,那就先對這10個窗口進行保存,然后將10個窗口的信息列表發(fā)送給內(nèi)核態(tài);
[0039]虛擬顯卡模塊,為內(nèi)核態(tài)中每一個待跟蹤的窗口均創(chuàng)建一個窗口狀態(tài)變化引擎,用于跟蹤獲取窗口元素的變化數(shù)據(jù),同時也為每一個待跟蹤的窗口均創(chuàng)建一個唯一的標識符,該唯一的標識符用于準確識別窗口 ;所述窗口元素的變化數(shù)據(jù)包括窗口位置、窗口大小、窗口可視區(qū)域及窗口標識,所述窗口狀態(tài)變化引擎還會對每一個窗口元素的變化數(shù)據(jù)進行保存,實現(xiàn)對桌窗口的跟蹤;
[0040]數(shù)據(jù)編碼模塊,根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變和編碼;所述預先設定的處理策略是預先根據(jù)窗口元素的變化,設定要對窗口進行的改變;該步驟進一步具體為:先根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變(例如預先設定窗口高度的變化在0.2cm?0.25cm范圍內(nèi)時,統(tǒng)一對窗口調(diào)整0.2cm,那么當跟蹤獲取的窗口高度的變化在上述范圍時,我們就對窗口調(diào)整一個0.2cm的高度),然后對不同類型的窗口采用不同的編碼方式進行編碼,例如圖形窗口可以采用JPEG編碼,視頻窗口可以H.264編碼等;
[0041]數(shù)據(jù)傳輸模塊,將編碼后的窗口傳送給用戶終端進行顯示,供用戶進行體驗。
[0042]本發(fā)明具有如下優(yōu)點:實現(xiàn)了對操作系統(tǒng)桌面窗口元素的分解和跟蹤,并對不同類型的窗口采用不同的編碼方式進行編碼,這不僅減少了傳輸?shù)接脩艚K端的數(shù)據(jù)量,且降低了帶寬,改善了用戶的體驗。
[0043]雖然以上描述了本發(fā)明的【具體實施方式】,但是熟悉本【技術領域】的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領域的技術人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應當涵蓋在本發(fā)明的權利要求所保護的范圍內(nèi)。
【權利要求】
1.一種VDI環(huán)境下桌面窗口元素的跟蹤識別方法,所述VDI將操作系統(tǒng)及應用程序統(tǒng)一放到數(shù)據(jù)中心的服務器中運行,將用戶的桌面進行虛擬化,所述操作系統(tǒng)包括用戶態(tài)和內(nèi)核態(tài);其特征在于:所述方法包括如下步驟: 步驟1、枚舉用戶態(tài)當前會話的所有窗口元素的句柄; 步驟2、根據(jù)句柄監(jiān)控用戶態(tài)當前會話及窗口站的改變,進而監(jiān)控窗口元素的變化; 步驟3、保存用戶態(tài)當前桌面所有待跟蹤的窗口,并將窗口的信息列表發(fā)送給內(nèi)核態(tài); 步驟4、為內(nèi)核態(tài)中每一個待跟蹤的窗口均創(chuàng)建一個窗口狀態(tài)變化引擎,用于跟蹤獲取窗口元素的變化數(shù)據(jù),同時也為每一個待跟蹤的窗口均創(chuàng)建一個唯一的標識符; 步驟5、根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變和編碼; 步驟6、將編碼后的窗口發(fā)送到用戶終端進行顯示。
2.根據(jù)權利要求1所述的VDI環(huán)境下桌面窗口元素的跟蹤識別方法,其特征在于:所述窗口元素的變化數(shù)據(jù)包括窗口位置、窗口大小、窗口可視區(qū)域及窗口標識。
3.根據(jù)權利要求1所述的VDI環(huán)境下桌面窗口元素的跟蹤識別方法,其特征在于:所述預先設定的處理策略是預先根據(jù)窗口元素的變化,設定要對窗口進行的改變。
4.根據(jù)權利要求3所述的VDI環(huán)境下桌面窗口元素的跟蹤識別方法,其特征在于:所述步驟5具體為:先根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變,然后對不同類型的窗口采用不同的編碼方式進行編碼。
5.一種VDI環(huán)境下桌面窗口元素的跟蹤識別系統(tǒng),所述VDI將操作系統(tǒng)及應用程序統(tǒng)一放到數(shù)據(jù)中心的服務器中運行,將用戶的桌面進行虛擬化,所述操作系統(tǒng)包括用戶態(tài)和內(nèi)核態(tài);其特征在于:包括: 窗口枚舉模塊,枚舉用戶態(tài)當前會話的所有窗口元素的句柄; 會話監(jiān)控模塊,根據(jù)句柄監(jiān)控用戶態(tài)當前會話及窗口站的改變,進而監(jiān)控窗口元素的變化; 窗口保存模塊,保存用戶態(tài)當前桌面所有待跟蹤的窗口,并將窗口的信息列表發(fā)送給內(nèi)核態(tài); 虛擬顯卡模塊,為內(nèi)核態(tài)中每一個待跟蹤的窗口均創(chuàng)建一個窗口狀態(tài)變化引擎,用于跟蹤獲取窗口元素的變化數(shù)據(jù),同時也為每一個待跟蹤的窗口均創(chuàng)建一個唯一的標識符; 數(shù)據(jù)編碼模塊,根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變和編碼; 數(shù)據(jù)傳輸模塊,將編碼后的窗口發(fā)送到用戶終端進行顯示。
6.根據(jù)權利要求5所述的VDI環(huán)境下桌面窗口元素的跟蹤識別系統(tǒng),其特征在于:所述窗口元素的變化數(shù)據(jù)包括窗口位置、窗口大小、窗口可視區(qū)域及窗口標識。
7.根據(jù)權利要求5所述的VDI環(huán)境下桌面窗口元素的跟蹤識別系統(tǒng),其特征在于:所述預預先設定的處理策略是預先根據(jù)窗口元素的變化,設定要對窗口進行的改變。
8.根據(jù)權利要求7所述的VDI環(huán)境下桌面窗口元素的跟蹤識別系統(tǒng),其特征在于:所述數(shù)據(jù)編碼模塊進一步具體為:先根據(jù)不同窗口跟蹤獲取的窗口元素的變化數(shù)據(jù)及唯一的標識符,并結合預先設定的處理策略對窗口進行改變,然后對不同類型的窗口采用不同的編碼方式進行編碼。
【文檔編號】G06F9/44GK104375825SQ201410498283
【公開日】2015年2月25日 申請日期:2014年9月25日 優(yōu)先權日:2014年9月25日
【發(fā)明者】張輝, 夏威 申請人:福建升騰資訊有限公司