鍵鼠腳本回放的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種鍵鼠腳本回放的方法及裝置。
【背景技術(shù)】
[0002]用戶通常在計算機(jī)上執(zhí)行某些任務(wù)的過程中會重復(fù)進(jìn)行一系列點擊鍵盤鼠標(biāo)(簡稱“鍵鼠”)的操作,例如在游戲中通過鍵鼠重復(fù)點擊目標(biāo)對象完成任務(wù)。大量的重復(fù)點擊鍵鼠操作是一個機(jī)械執(zhí)行的過程,如果通過用戶人為進(jìn)行鍵鼠點擊不僅造成用戶的操作疲勞,而且還容易使鍵鼠點擊出現(xiàn)錯誤。為了解放用戶的操作,提高鍵鼠點擊的準(zhǔn)確性,現(xiàn)有技術(shù)中提供了一種方法,即對用戶點擊的鍵鼠操作進(jìn)行腳本錄制,得到記錄有需要重復(fù)執(zhí)行的一系列點擊鍵鼠操作的鍵鼠腳本。在執(zhí)行相關(guān)任務(wù)的過程中,只需要對相關(guān)的鍵鼠腳本進(jìn)行回放即可代替用戶的手動操作完成任務(wù)。
[0003]發(fā)明人在執(zhí)行上述方法時,發(fā)現(xiàn)現(xiàn)有的鍵鼠腳本回放模式還存在一定的缺陷。對于托管模式,在執(zhí)行兩個鍵鼠事件之間的時間間隔中,用戶可以插入手動操作,這些手動操作會影響上一鍵鼠事件的執(zhí)行結(jié)果,并且下一鍵鼠事件是以該手動操作結(jié)果為基礎(chǔ)繼續(xù)執(zhí)行的,因此會導(dǎo)致腳本回放的結(jié)果出現(xiàn)錯誤。下面以回放鍵鼠腳本進(jìn)行賬號輸入的過程為例對這種缺陷進(jìn)行說明。如圖1所示,在屏幕桌面上,賬號登錄界面作為執(zhí)行鍵鼠腳本的目的窗口,在賬號輸入框中輸入賬號abed#的過程中,當(dāng)輸入完a、b、c后,在c與下一個要輸入的字符d之間的時間間隔內(nèi),用戶將操作焦點移動到賬號登錄界面密碼輸入框內(nèi),則在托管模式下鍵鼠腳本的執(zhí)行會以操作焦點當(dāng)前的位置繼續(xù)進(jìn)行賬號的輸入,使得在密碼的輸入框內(nèi)繼續(xù)輸入字符d#。由于托管模式下僅著眼于操作焦點的焦點位置,因此,當(dāng)用戶手動將操作焦點移動到密碼輸入框時,鍵鼠腳本會基于當(dāng)前操作焦點的位置繼續(xù)輸入賬號,導(dǎo)致鍵鼠腳本回放發(fā)生錯誤。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供的一種鍵鼠腳本回放的方法及裝置,主要目的在于解決托管模式下用戶的無關(guān)操作導(dǎo)致鍵鼠腳本回放出現(xiàn)錯誤的問題。
[0005]依據(jù)本發(fā)明一個方面,提供了一種鍵鼠腳本回放的方法,所述方法包括:
[0006]在托管模式下,當(dāng)執(zhí)行完當(dāng)前鍵鼠事件后,將所述當(dāng)前鍵鼠事件中的坐標(biāo)信息記錄到第一緩存中,所述坐標(biāo)信息用于描述所述當(dāng)前鍵鼠事件對應(yīng)的操作焦點的坐標(biāo)位置;
[0007]若在執(zhí)行下一鍵鼠事件前檢測到底層觸發(fā)的鍵鼠操作指令,則執(zhí)行所述鍵鼠操作指令;
[0008]截獲即將執(zhí)行的所述下一鍵鼠事件,并從所述第一緩存中獲取上一鍵鼠事件的所述坐標(biāo)信息;
[0009]將操作焦點從當(dāng)前的坐標(biāo)位置移動到所述坐標(biāo)信息對應(yīng)的坐標(biāo)位置上;
[0010]基于移動后的坐標(biāo)位置,執(zhí)行所述下一鍵鼠事件。
[0011]依據(jù)本發(fā)明另一個方面,提供了一種鍵鼠腳本回放的裝置,所述裝置包括:
[0012]第一記錄單元,用于在托管模式下,當(dāng)執(zhí)行完當(dāng)前鍵鼠事件后,將所述當(dāng)前鍵鼠事件中的坐標(biāo)信息記錄到第一緩存中,所述坐標(biāo)信息用于描述所述當(dāng)前鍵鼠事件對應(yīng)的操作焦點的坐標(biāo)位置;
[0013]第一執(zhí)行單元,用于當(dāng)在執(zhí)行下一鍵鼠事件前檢測到底層觸發(fā)的鍵鼠操作指令時,執(zhí)行所述鍵鼠操作指令;
[0014]截獲單元,用于截獲即將執(zhí)行的所述下一鍵鼠事件;
[0015]第一獲取單元,用于從所述第一記錄單元中的所述第一緩存中獲取上一鍵鼠事件的所述坐標(biāo)信息;
[0016]移動單元,用于將操作焦點從當(dāng)前的坐標(biāo)位置移動到所述坐標(biāo)信息對應(yīng)的坐標(biāo)位置上;
[0017]第二執(zhí)行單元,用于基于所述移動單元移動后的坐標(biāo)位置,執(zhí)行所述下一鍵鼠事件。
[0018]借由上述技術(shù)方案,本發(fā)明提供鍵鼠腳本回放的方法及裝置,在托管模式回放鍵鼠腳本過程中,當(dāng)執(zhí)行完當(dāng)前鍵鼠事件后,將該當(dāng)前事件中的坐標(biāo)信息被記錄到第一緩存中,執(zhí)行在下一鍵鼠事件前若檢測到的底層觸發(fā)的鍵鼠操作指令,截獲即將執(zhí)行的下一鍵鼠事件,并從第一緩存中獲取上一鍵鼠事件的坐標(biāo)信息,將操作焦點從當(dāng)前的坐標(biāo)位置移動到坐標(biāo)信息對應(yīng)的坐標(biāo)位置上,基于移動后的坐標(biāo)位置,執(zhí)行下一鍵鼠事件。由于托管模式僅著眼于操作焦點的焦點位置,在執(zhí)行完當(dāng)前鍵鼠事件后,將此刻操作焦點的坐標(biāo)信息記錄到第一緩存中,本發(fā)明允許在鍵鼠事件的時間間隔內(nèi)插入底層觸發(fā)的鍵鼠操作指令,但在執(zhí)行下一鍵鼠事件時,需將該鍵鼠操作指令所產(chǎn)生的操作結(jié)果進(jìn)行撤銷,并將操作焦點移動到第一緩存所記錄的坐標(biāo)位置上,在實現(xiàn)回放鍵鼠腳本的連續(xù)性的同時,還能夠避免底層觸發(fā)的鍵鼠操作指令等無關(guān)操作對鍵鼠腳本回放造成的干擾。
[0019]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0020]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0021]圖1示出了現(xiàn)有技術(shù)中在賬號登錄界面中執(zhí)行鍵鼠腳本回放的示意圖;
[0022]圖2示出了本發(fā)明實施例提供的一種鍵鼠腳本回放的方法的流程圖;
[0023]圖3A示出了本發(fā)明實施例提供的鍵鼠操作指令對應(yīng)的操作信息為刪除操作內(nèi)容的不意圖;
[0024]圖3B示出了本發(fā)明實施例提供的鍵鼠操作指令對應(yīng)的操作信息為增加操作內(nèi)容的不意圖;
[0025]圖3C示出了本發(fā)明實施例提供的鍵鼠操作指令對應(yīng)的操作信息為替換操作內(nèi)容的不意圖;
[0026]圖3D示出了本發(fā)明實施例提供的鍵鼠操作指令對應(yīng)的操作信息為對目的窗口之外的其他窗口的操作內(nèi)容的示意圖;
[0027]圖4示出了本發(fā)明實施例提供的一種鍵鼠腳本回放的裝置的組成框圖;
[0028]圖5示出了本發(fā)明實施例提供的另一種鍵鼠腳本回放的裝置的組成框圖。
【具體實施方式】
[0029]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0030]本發(fā)明實施例提供一種鍵鼠腳本回放的方法,如圖2所示,該方法包括:
[0031]201、在托管模式下,當(dāng)執(zhí)行完當(dāng)前鍵鼠事件后,將當(dāng)前鍵鼠事件中的坐標(biāo)信息記錄到第一緩存中。
[0032]在首次進(jìn)行鍵鼠操作時,對執(zhí)行的鍵鼠操作以鍵鼠事件為單位進(jìn)行鍵鼠腳本的錄制,獲得鍵鼠腳本后,由計算機(jī)對鍵鼠腳本進(jìn)行回放,模擬此前執(zhí)行的鍵鼠操作。其中,除了鼠標(biāo)移動和鼠標(biāo)滾輪外,鍵盤或者鼠標(biāo)的按下、放開均為一個獨立的鍵鼠事件。
[0033]在托管模式下進(jìn)行鍵鼠腳本回放的過程中,基于托管模式僅著眼于操作焦點的焦點位置進(jìn)行執(zhí)行鍵鼠事件的特點,當(dāng)用戶在相鄰的鍵鼠事件之間手動插入鍵鼠事件以外的操作,使操作焦點移出鍵鼠事件所在的焦點位置后,造成執(zhí)行鍵鼠腳本回放時出現(xiàn)錯誤。因此,為了防止鍵鼠腳本的在回放過程中出現(xiàn)錯誤,當(dāng)執(zhí)行完當(dāng)前鍵鼠事件后,需要將當(dāng)前鍵鼠事件中的坐標(biāo)信息記錄到第一緩存中,所述坐標(biāo)位置用于描述當(dāng)前鍵鼠事件對應(yīng)的操作焦點的坐標(biāo)位置。
[0034]需要說明的是,鍵鼠腳本中記錄的每個鍵鼠事件均以一串字節(jié)的形式存儲于終端,即每個鍵鼠事件占用一個或者多個連續(xù)字節(jié)的存儲空間。每串字節(jié)攜帶的信息包括:事件類型、操作焦點的坐標(biāo)。當(dāng)執(zhí)行完當(dāng)前鍵鼠事件時,獲取該鍵鼠事件對應(yīng)的坐標(biāo)信息,并將該坐標(biāo)信息記錄到第一緩存中,以便后續(xù)當(dāng)有用戶插入手動操作時,將操作焦點的坐標(biāo)信息與第一緩存記錄的坐標(biāo)信息進(jìn)行比對。其中,事件類型包括:鍵盤按鍵按下事件、鍵盤按鍵放開事件、鼠標(biāo)移動事件、鼠標(biāo)滾輪滾動事件、鼠標(biāo)按鍵按下事件和鼠標(biāo)按鍵放開事件。例如,一個事件為按鍵A按下事件,則該事件的事件類型為鍵盤按鍵的按鍵A按下事件,操作焦點的坐標(biāo)為(100,300),可知用戶在終端坐標(biāo)為(100,300)處,按下了按鍵A。
[0035]202、若在執(zhí)行下一鍵鼠事件前檢測到底層觸發(fā)的鍵鼠操作指令,則執(zhí)行鍵鼠操作指令。
[0036]本發(fā)明實施例中,在托管模式下鍵鼠腳本的回放過程中,由于相鄰鼠標(biāo)事件之間存在一定的時間間隔,并且在該時間間隔內(nèi)用戶通過鍵盤或者鼠標(biāo)插入的操作不會對鍵鼠事件的執(zhí)行造成干擾,因此,在相鄰鍵鼠事件的時間間隔內(nèi),允許用戶插入手動操作。當(dāng)在執(zhí)行下一鍵鼠事件之前檢測到底層觸發(fā)的鍵鼠操作指令,則執(zhí)行鍵鼠操作指令,但在達(dá)到執(zhí)行下一鍵鼠事件的時刻時,需要執(zhí)行步驟203。其中,底層觸發(fā)的鍵鼠操作指令包括通過鼠標(biāo)或者通過鍵盤觸發(fā)的鍵鼠操作指令,而本發(fā)明實施例對所述鍵鼠操作指令的具體內(nèi)容不進(jìn)行限定。
[0037]203、截獲即將執(zhí)行的下一鍵鼠事件,并從第一緩存中獲取上一鍵鼠事件的坐標(biāo)信息。
[0038]由于底層觸發(fā)的鍵鼠操作指令影響上一鍵鼠事件的執(zhí)行結(jié)果,并且下一鍵鼠事件是以該鍵鼠操作指令的操作結(jié)果為基礎(chǔ)繼續(xù)執(zhí)行下一鍵鼠事件,因此在下一鍵鼠事件進(jìn)行執(zhí)行之前,將該下一鍵鼠事件進(jìn)行截獲,防止由于鍵鼠操作指令的執(zhí)行而導(dǎo)致鍵鼠腳本回放的結(jié)果出現(xiàn)錯誤。對即將執(zhí)行的下一鍵鼠事件進(jìn)行截獲,以判