虛擬操控的方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種虛擬操控的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]隨著近年來移動智能終端的普及,催生了移動互聯(lián)網(wǎng)的飛速發(fā)展,現(xiàn)在種類繁多而豐富多彩的應(yīng)用讓移動智能終端可以滿足人們的各種需求。但是由于在某些方面的技術(shù)瓶頸,諸如電池的續(xù)航能力、屏幕的尺寸以及用戶在使用移動設(shè)備時(shí)不可避免的局限(如操作的精準(zhǔn)度等),都會影響用戶的使用體驗(yàn)。因此如果能在PC上模擬出移動終端的運(yùn)行環(huán)境,并充分發(fā)揮PC的優(yōu)勢,例如持續(xù)的電力、大屏幕的絢麗的畫面效果、鍵盤鼠標(biāo)的精準(zhǔn)操作等,可以很大程度上滿足用戶在移動智能終端上無法得到的體驗(yàn)。
[0003]例如,對于許多手機(jī)上的應(yīng)用(也稱為:應(yīng)用程序、APP、軟件),將應(yīng)用的界面移植到更大顯示的PC上,可以獲得更好的操作感受。例如,對于許多游戲玩家而言,將手游的界面移植到更大顯示的PC上,可以獲得更好的游戲感受。然而,受限于PC的輸入限制,僅能通過PC的鍵盤或鼠標(biāo)對游戲進(jìn)行操控,而在游戲中有很多重復(fù)的操控,反復(fù)操作鼠標(biāo)或鍵盤給用戶體驗(yàn)較差。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的虛擬操控的方法、裝置及系統(tǒng)。
[0005]依據(jù)本發(fā)明的一個(gè)方面,提供一種虛擬操控的方法,用于對運(yùn)行在寄生于宿主操作系統(tǒng)的虛擬操作系統(tǒng)上的應(yīng)用進(jìn)行控制,所述方法包括:
[0006]建立所述宿主操作系統(tǒng)與所述虛擬操作系統(tǒng)之間的通信連接;
[0007]針對所述應(yīng)用,在所述宿主操作系統(tǒng)中預(yù)置鍵鼠錄制腳本;
[0008]當(dāng)所述應(yīng)用在所述虛擬操作系統(tǒng)上運(yùn)行且接收到執(zhí)行所述鍵鼠錄制腳本的指令時(shí),所述宿主操作系統(tǒng)解析所述鍵鼠錄制腳本,得到控制命令;
[0009]通過所述通信連接,所述宿主操作系統(tǒng)向所述虛擬操作系統(tǒng)提供基于所述控制命令的輸入控制消息,由所述虛擬操作系統(tǒng)對輸入控制消息進(jìn)行處理。
[0010]優(yōu)選的,所述建立所述宿主操作系統(tǒng)與所述虛擬操作系統(tǒng)之間的通信連接,包括:[0011 ]通過所述宿主操作系統(tǒng)中的模擬控制程序啟動所述虛擬操作系統(tǒng);
[0012]所述虛擬操作系統(tǒng)通過基礎(chǔ)進(jìn)程加載預(yù)定義腳本,從而將所述虛擬操作系統(tǒng)的IP地址提供給所述宿主操作系統(tǒng),以及,通過所述基礎(chǔ)進(jìn)程啟動虛擬輸入服務(wù)進(jìn)程;
[0013]所述宿主操作系統(tǒng)根據(jù)所述虛擬操作系統(tǒng)的IP地址,建立所述模擬控制程序與所述虛擬輸入服務(wù)進(jìn)程之間的連接。
[0014]優(yōu)選的,
[0015]在所述宿主操作系統(tǒng)得到所述控制命令之后,還包括:所述宿主操作系統(tǒng)根據(jù)所述控制命令轉(zhuǎn)譯得到輸入控制消息,由所述模擬控制程序?qū)⑺鲚斎肟刂葡l(fā)送給所述虛擬輸入服務(wù)進(jìn)程;
[0016]所述由所述虛擬操作系統(tǒng)對輸入控制消息進(jìn)行處理包括:所述虛擬操作系統(tǒng)對所述輸入控制消息進(jìn)行解譯,得到所述虛擬操作系統(tǒng)可識別的輸入控制信號。
[0017]優(yōu)選的,所述根據(jù)所述控制命令轉(zhuǎn)譯得到輸入控制消息,包括:
[0018]所述模擬控制程序?qū)λ隹刂泼钜约翱刂茀?shù)進(jìn)行轉(zhuǎn)譯,生成所述輸入控制消息。
[0019]優(yōu)選的,所述虛擬輸入服務(wù)進(jìn)程對所述輸入控制消息進(jìn)行解譯,得到所述虛擬操作系統(tǒng)可識別的輸入控制信號,包括:
[0020]對所述虛擬輸入服務(wù)進(jìn)程接收到的所述輸入控制消息進(jìn)行解譯,得到所述控制命令;
[0021]對解譯得到的控制命令進(jìn)行硬件抽象層HAL轉(zhuǎn)換,得到所述虛擬操作系統(tǒng)可識別的輸入控制信號。
[0022]優(yōu)選的,
[0023]所述虛擬操作系統(tǒng)運(yùn)行在與所述宿主操作系統(tǒng)所在物理設(shè)備相獨(dú)立的另一個(gè)物理設(shè)備上;或者,
[0024]所述虛擬操作系統(tǒng)運(yùn)行在虛擬機(jī)上,其中,所述虛擬機(jī)運(yùn)行在所述宿主操作系統(tǒng)所在的物理設(shè)備上,或者,所述虛擬機(jī)運(yùn)行在與所述宿主操作系統(tǒng)所在物理設(shè)備不同的另一個(gè)物理設(shè)備上。
[°°25] 優(yōu)選的,所述虛擬機(jī)為VirtualBox虛擬機(jī);
[0026]所述通過所述宿主操作系統(tǒng)中的模擬控制程序啟動所述虛擬操作系統(tǒng),包括:通過所述宿主操作系統(tǒng)中的模擬控制程序控制VirtualBox虛擬機(jī),由VirtualBox虛擬機(jī)啟動所述虛擬操作系統(tǒng)。
[0027]優(yōu)選的,所述虛擬機(jī)為VirtualBox虛擬機(jī);
[0028]所述虛擬操作系統(tǒng)通過基礎(chǔ)進(jìn)程加載預(yù)定義腳本,從而將所述虛擬操作系統(tǒng)的IP地址提供給所述宿主操作系統(tǒng),包括:
[0029]所述虛擬操作系統(tǒng)通過ini t進(jìn)程加載預(yù)定義腳本,運(yùn)行VirtualBox虛擬機(jī)的客戶擴(kuò)展組件,將所述虛擬操作系統(tǒng)的IP地址寫入VirtualBox虛擬機(jī)的客戶屬性;
[0030]所述宿主操作系統(tǒng)讀取所述VirtualBox虛擬機(jī)的客戶屬性,獲取所述虛擬操作系統(tǒng)的IP地址。
[0031 ]優(yōu)選的,
[0032]所述通過所述基礎(chǔ)進(jìn)程啟動虛擬輸入服務(wù)進(jìn)程,包括:通過ini t進(jìn)程啟動Vinput進(jìn)程;
[0033]所述建立所述模擬控制程序與所述虛擬輸入服務(wù)進(jìn)程之間的連接,包括:在所述虛擬操作系統(tǒng)的指定端口,所述vinput進(jìn)程建立與所述模擬控制程序的連接。
[0034]優(yōu)選的,在通過所述宿主操作系統(tǒng)中的模擬控制程序啟動所述虛擬操作系統(tǒng)之前,還包括:所述宿主操作系統(tǒng)配置一個(gè)專門用來與所述虛擬操作系統(tǒng)通信的虛擬網(wǎng)絡(luò)連接,使得宿主操作系統(tǒng)和虛擬操作系統(tǒng)在所述虛擬網(wǎng)絡(luò)連接中連通。
[0035]優(yōu)選的,所述宿主操作系統(tǒng)包括Windows操作系統(tǒng)、Mac操作系統(tǒng)或Linux操作系統(tǒng);所述虛擬操作系統(tǒng)包括Andro id操作系統(tǒng)。
[0036]優(yōu)選的,還包括:獲取所述應(yīng)用的文件包信息,根據(jù)文件包信息確定應(yīng)用類型,并在所述宿主操作系統(tǒng)中建立該應(yīng)用類型與所述對應(yīng)關(guān)系的關(guān)聯(lián)。
[0037]優(yōu)選的,所述在所述宿主操作系統(tǒng)中預(yù)置鍵鼠錄制腳本,包括:
[0038]所述宿主操作系統(tǒng)通過截取并記錄目標(biāo)窗口的鍵盤和/或鼠標(biāo)操作消息,得到所述鍵鼠錄制腳本;或者,
[0039]通過全局鉤子獲取并記錄鍵盤和/或鼠標(biāo)操作消息,得到所述鍵鼠錄制腳本;或者,
[0040]通過低級全局鉤子獲取輸入設(shè)備操作的描述信息;將所述描述信息合成為事件;計(jì)算相鄰兩個(gè)事件之間的時(shí)間間隔;對所述事件及所述時(shí)間間隔進(jìn)行記錄,得到所述鍵鼠錄制腳本。
[0041]—種虛擬操控的裝置,用于對運(yùn)行在寄生于宿主操作系統(tǒng)的虛擬操作系統(tǒng)上的應(yīng)用進(jìn)行控制,所述裝置包括:
[0042]宿主虛擬通信單元,用于建立所述宿主操作系統(tǒng)與所述虛擬操作系統(tǒng)之間的通信連接;
[0043]腳本預(yù)置單元,用于針對所述應(yīng)用,在所述宿主操作系統(tǒng)中預(yù)置鍵鼠錄制腳本;
[0044]腳本解析單元,用于當(dāng)接收到執(zhí)行所述鍵鼠錄制腳本的指令時(shí),,解析所述鍵鼠錄制腳本,得到控制命令;
[0045]控制命令處理單元,用于通過所述通信連接,由所述宿主操作系統(tǒng)向所述虛擬操作系統(tǒng)提供基于所述控制命令的輸入控制消息,以便所述虛擬操作系統(tǒng)對輸入控制消息進(jìn)行處理。
[0046]優(yōu)選的,所述宿主虛擬通信單元具體包括:
[0047]啟動虛擬控制子單元,用于控制所述宿主操作系統(tǒng)中的模擬控制程序啟動所述虛擬操作系統(tǒng);
[0048]虛擬IP地址獲取子單元,用于獲取所述虛擬操作系統(tǒng)的IP地址;
[0049]虛擬連接建立子單元,用于根據(jù)所述虛擬操作系統(tǒng)的IP地址,建立所述模擬控制程序與虛擬操作系統(tǒng)中虛擬輸入服務(wù)進(jìn)程之間的連接。
[0050]優(yōu)選的,所述控制命令處理單元具體用于,對所述控制命令以及控制參數(shù)進(jìn)行轉(zhuǎn)譯,生成所述輸入控制消息。
[0051 ]優(yōu)選的,
[0052]所述虛擬操作系統(tǒng)運(yùn)行在與所述宿主操作系統(tǒng)所在物理設(shè)備相獨(dú)立的另一個(gè)物理設(shè)備上;或者,
[0053]所述虛擬操作系統(tǒng)運(yùn)行在虛擬機(jī)上,其中,所述虛擬機(jī)運(yùn)行在所述宿主操作系統(tǒng)所在的物理設(shè)備上,或者,所述虛擬機(jī)運(yùn)行在與所述宿主操作系統(tǒng)所在物理設(shè)備不同的另一個(gè)物理設(shè)備上。
[0054]優(yōu)選的,所述虛擬機(jī)為VirtualBox虛擬機(jī);所述啟動虛擬控制子單元具體用于,通過所述宿主操作系統(tǒng)中的模擬控制程序控制VirtualBox虛擬機(jī),由VirtualBox虛擬機(jī)啟動所述虛擬操作系統(tǒng)。
[0055]優(yōu)選的,所述虛擬機(jī)為VirtualBox虛擬機(jī);所述虛擬IP地址獲取子單元具體用于,讀取所述VirtualBox虛擬機(jī)的客戶屬性,獲取所述虛擬操作系統(tǒng)的IP地址。
[0056]優(yōu)選的,所述虛擬連接建立子單元具體用于,在所述虛擬操作系統(tǒng)的指定端口,所述模擬控制程序與所述虛擬操作系統(tǒng)的vinput進(jìn)程建立連接。
[0057]優(yōu)選的,還包括:
[0058]虛擬網(wǎng)絡(luò)配置單元,用于在所述宿主操作系統(tǒng)配置一個(gè)專門用來與所述虛擬操作系統(tǒng)通信的虛擬網(wǎng)絡(luò)連接,使得宿主操作系統(tǒng)和虛擬操作系統(tǒng)在所述虛擬網(wǎng)絡(luò)連接中連通。
[0059]優(yōu)選的,還包括:
[0060]應(yīng)用類型確定單元,用于獲取所述應(yīng)用的文件包信息,根據(jù)文件包信息確定應(yīng)用類型,并在所述宿主操作系統(tǒng)中建立該應(yīng)用類型與所述對應(yīng)關(guān)系的關(guān)聯(lián)。
[0061 ]優(yōu)選的,所述腳本預(yù)置單元具體用于:通過截取并記錄目標(biāo)窗口的鍵盤和/或鼠標(biāo)操作消息,得到所述鍵鼠錄制腳本;或者,通過全局鉤子獲取并記錄鍵盤和/或鼠標(biāo)操作消息,得到所述鍵鼠錄制腳本;或者,通過低級全局鉤子獲取輸入設(shè)備操作的描述信息;將所述描述信息合成為事件;計(jì)算相鄰兩個(gè)事件之間的時(shí)間間隔;對所述事件及所述時(shí)間間隔進(jìn)行記錄,得到所述鍵鼠錄制腳本。
[0062]—種虛擬操控的系統(tǒng),用于對運(yùn)行在寄生于宿主操作系統(tǒng)的虛擬操作系統(tǒng)上的應(yīng)用進(jìn)行控制,所述系統(tǒng)包括:
[0063]宿主操作系統(tǒng),用于建立與所述虛擬操作系統(tǒng)之間的通信連接,并針對所述應(yīng)用,預(yù)置鍵鼠錄制腳本;在所述虛擬操作系統(tǒng)上運(yùn)行所述應(yīng)用時(shí),當(dāng)接收到執(zhí)行所述鍵鼠錄制腳本的指令時(shí),解析所述鍵鼠錄制腳本,得到控制命令;通過所述通信連接,向所述虛擬操作系統(tǒng)提供基于所述控制命令的輸入控制消息,
[0064]虛擬操作系統(tǒng),用于建立與所述宿主操作系統(tǒng)之間的通信連接,并在接收到宿主操作系統(tǒng)的輸入控制消息之后,對輸入控制消息進(jìn)行處理。
[0065]優(yōu)選的,
[0066]所述宿主操作系統(tǒng)還用于,建立與所述虛擬操作系統(tǒng)的網(wǎng)絡(luò)連接,并通過模擬控制程序啟動所述虛擬操作系統(tǒng),以及,根據(jù)獲取的所述虛擬操作系統(tǒng)的IP地址,建立所述模擬控制程序與所述虛擬操作系統(tǒng)中的輸入服務(wù)進(jìn)程之間的連接;并且,在確定出控制命令后,根據(jù)所述控制命令轉(zhuǎn)譯得到輸入控制消息,由所述模擬控制程序?qū)⑺鲚斎肟刂葡l(fā)送給所述虛擬輸入服務(wù)進(jìn)程;
[0067]所述虛擬操作系統(tǒng)還用于,通過基礎(chǔ)進(jìn)程加載預(yù)定義腳本,從而將所述虛擬操作系統(tǒng)的IP地址提供給所述宿主操作系統(tǒng),以及,通過所述基礎(chǔ)進(jìn)程啟動虛擬輸入服務(wù)進(jìn)程,以及,由所述虛擬輸入服務(wù)進(jìn)程接收所述模擬控制程序發(fā)送來的輸入控制消息,并且,對所述虛擬輸入服務(wù)進(jìn)程接收到的所述輸入控制消息進(jìn)行解譯,得到所述虛擬操作系統(tǒng)可識別的輸入控制信號。
[