Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法
【專利摘要】本發明提供一種Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法:修改Linux系統鼠標驅動,當檢測到鼠標右鍵按下Down事件時,先投遞一個鼠標左鍵按下Down事件模擬鼠標左鍵按下,獲取當前系統時間并把系統時間往前調一個系統定義的長按操作判定時間間隔;當鼠標右鍵松開Up事件產生時,獲取當前系統時間,并根據觸發按鍵長按事件的時間計算鼠標右鍵按下到松開的等待時間,再投遞一個鼠標左鍵松開Up事件模擬鼠標左鍵松開,計算模擬鼠標左鍵長按時間并恢復原來的系統運行時間;至此觸發了一個鼠標左鍵長按事件,系統會將此長按事件發給云桌面系統,實現了系統鼠標右鍵功能。
【專利說明】Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法
【技術領域】
[0001]本發明涉及一種Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法。
【背景技術】
[0002]Android系統自誕生至今已經成為當今主流的2大移動操作系統之一,當前Android系統被廣泛使用在手機及平板設備上。但是自從Android4.0系統發布以來,Android系統已經慢慢開始進入通常的桌面辦公市場,基于Android系統的遠程桌面協議實現越來越多,其中以微軟的RDP協議,VMware公司的PCoIP協議,Citrix公司的ICA協議為主要代表。但是,由于Android系統自誕生之日起就是為觸屏設備設計的,鼠標的使用在Android系統中被極度弱化,即使在Android3.0系統開始,鼠標被帶回到Android系統中,它也是一個模擬的觸屏設備,其中最明顯的就是鼠標右鍵在Android系統下無法使用,鼠標右鍵被系統處理為系統返回鍵。這個問題在Android系統進入桌面辦公領域后變得極為不可接受,用戶在使用遠程桌面協議登錄系統后,完全無法使用鼠標進行辦公,只能通過長按左鍵的方式實現在遠程桌面上的鼠標右鍵使用。
【發明內容】
[0003]本發明要解決的技術問題,在于提供一種Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法。
[0004]本發明是這樣實現的:一種Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法,包括
[0005]步驟10、修改Linux系統鼠標驅動,當檢測到鼠標右鍵按下Down事件時,先投遞一個鼠標左鍵按下Down事件模擬鼠標左鍵按下,獲取當前系統時間并把系統時間往前調一個系統定義的長按操作判定時間間隔;
[0006]步驟20、當鼠標右鍵松開Up事件產生時,獲取當前系統時間,并根據觸發按鍵長按事件的時間計算鼠標右鍵按下到松開的等待時間,再投遞一個鼠標左鍵松開Up事件模擬鼠標左鍵松開,計算模擬鼠標左鍵長按時間并把當前系統時間往后調一個系統定義的長按操作判定時間間隔,以恢復原來的系統運行時間;
[0007]步驟30、通過前兩個步驟就觸發了一個鼠標左鍵長按事件,系統會將此長按事件發給云桌面系統,實現了系統鼠標右鍵功能。
[0008]本發明具有如下優點:本發明方法將鼠標右鍵消息模擬發送2個鼠標點擊時間,并讓系統認為2個事件時間間隔大于系統判斷長按的時間間隔,以實現欺騙系統的目的,從而實現了為Android系統環境下的windows虛擬化云桌面連接提供系統鼠標右鍵功能,極大的方便了 Android下的windows虛擬化桌面用戶。【專利附圖】
【附圖說明】
[0009]下面參照附圖結合實施例對本發明作進一步的說明。
[0010]圖1為本發明方法執行流程圖。
【具體實施方式】
[0011]如圖1所示,本發明的Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法,包括
[0012]步驟10、修改Linux系統鼠標驅動,當檢測到鼠標右鍵按下Down事件時,先投遞一個鼠標左鍵按下Down事件模擬鼠標左鍵按下,獲取當前系統時間并把系統時間往前調一個系統定義的長按操作判定時間間隔;例如:系統定義的長按操作判定間隔時間為0.5s,鼠標右鍵按下時獲取的當前系統時間為01時00分0秒,則投遞Down事件后,把系統時間往前調一個系統定義的長按操作判定間隔時間(即0.5秒)后,當前系統時間為01時00分
0.5 秒。
[0013]步驟20、當鼠標右鍵松開Up事件產生時,獲取當前系統時間(即步驟10中往前調整后的時間),并根據觸發按鍵長按事件的時間計算鼠標右鍵按下到松開的等待時間,再投遞一個鼠標左鍵松開Up事件模擬鼠標左鍵松開,計算模擬鼠標左鍵長按時間并把當前系統時間往后調一個系統定義的長按操作判定時間間隔(即0.5秒),以恢復原來的系統運行時間;例如:鼠標右鍵松開(Up)時獲取的當前系統時間為01時00分0.6秒(S卩鼠標右鍵從按下到松開歷時0.1秒),此時投遞鼠標左鍵松開Up事件,然后把系統時間往回調0.5秒,即恢復正常的系統時間:01時00分0.1秒。
[0014]步驟30、通過前兩個步驟就觸發了一個鼠標左鍵長按事件,系統會將此長按事件發給云桌面系統,實現了系統鼠標右鍵功能。
[0015]本發明的原理如下:
[0016]如【背景技術】中提到的,在Android系統上系統上使用鼠標右鍵時會被系統映射為返回鍵發送給應用程序。若在Android系統中當用戶長按鼠標右鍵時,系統會發送LongPress消息給應用程序,應用程序在收到該消息后會執行相應的操作,而在桌面辦公的遠程桌面程序中,該操作會被處理為鼠標右鍵消息。這樣,鼠標右鍵系統在Android系統最底層的Linux內核中依然能被識別,只是在轉發消息是被轉發為系統返回消息,但是Android系統并沒有定義鼠標右鍵的消息。當長按鼠標時,Android系統會檢測2次鼠標時間的系統間隔時間,判斷鼠標事件是否為長按事件。在系統內核中,我們檢測鼠標右鍵消息,當收到鼠標右鍵消息時,我們模擬發送2個鼠標點擊時間,并讓系統認為2個事件時間間隔大于系統判斷長按的時間間隔,即可實現欺騙系統的目的。
[0017]雖然以上描述了本發明的【具體實施方式】,但是熟悉本【技術領域】的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發明的范圍的限定,熟悉本領域的技術人員在依照本發明的精神所作的等效的修飾以及變化,都應當涵蓋在本發明的權利要求所保護的范圍內。
【權利要求】
1.一種Android系統環境下windows虛擬化桌面連接的鼠標右鍵實現方法,其特征在于:包括 步驟10、修改Linux系統鼠標驅動,當檢測到鼠標右鍵按下Down事件時,先投遞一個鼠標左鍵按下Down事件模擬鼠標左鍵按下,獲取當前系統時間并把系統時間往前調一個系統定義的長按操作判定時間間隔; 步驟20、當鼠標右鍵松開Up事件產生時,獲取當前系統時間,并根據觸發按鍵長按事件的時間計算鼠標右鍵按下到松開的等待時間,再投遞一個鼠標左鍵松開Up事件模擬鼠標左鍵松開,計算模擬鼠標左鍵長按時間并把當前系統時間往后調一個系統定義的長按操作判定時間間隔,以恢復原來的系統運行時間; 步驟30、通過前兩個步驟就觸發了一個鼠標左鍵長按事件,系統會將此長按事件發給云桌面系統,實現了系統鼠標右鍵功能。
【文檔編號】H04L29/08GK103810121SQ201410055289
【公開日】2014年5月21日 申請日期:2014年2月19日 優先權日:2014年2月19日
【發明者】張輝, 張偉, 王金清 申請人:福建升騰資訊有限公司