鍵鼠腳本的回放方法及裝置制造方法
【專利摘要】本發(fā)明涉及一種鍵鼠腳本的回放方法及裝置,能夠解決誤操作率較高的問題。該方法包括:在應(yīng)用程序的運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件;鍵鼠腳本文件的各條腳本中分別包括對應(yīng)的鍵鼠操作事件的位置信息以及操作對象的圖像;當(dāng)應(yīng)用程序再次運行或回放時,根據(jù)每條腳本中的位置信息確定再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像,判斷再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像與該條腳本中的操作對象的圖像是否匹配;當(dāng)判斷結(jié)果為是時,針對再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本所對應(yīng)的操作動作。
【專利說明】鍵鼠腳本的回放方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,具體涉及一種鍵鼠腳本的回放方法及裝置。
【背景技術(shù)】
[0002]在電腦操作中,有些繁瑣的鼠標(biāo)鍵盤操作需要重復(fù)執(zhí)行,為了減輕電腦操作者的負(fù)擔(dān),用于通過腳本程序來模擬鼠標(biāo)鍵盤(簡稱“鍵鼠”)操作的軟件便應(yīng)運而生了。
[0003]目前已經(jīng)出現(xiàn)了很多能夠模擬鍵鼠操作的軟件,這些軟件通過腳本來記錄鍵鼠操作,并能夠?qū)τ涗浵聛淼逆I鼠操作進行回放。但是,這些軟件在回放鍵鼠操作時,無法準(zhǔn)確識別操作對象,只能基于鍵鼠操作的大概位置進行模糊回放。因此,只要操作對象的位置稍有變化,使用這些軟件來回放鍵鼠操作時就會出現(xiàn)誤操作。
[0004]由此可見,現(xiàn)有技術(shù)中用來模擬鍵鼠操作的軟件普遍存在著誤操作率較高的缺陷。
【發(fā)明內(nèi)容】
[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的鍵鼠腳本的回放方法及裝置。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種鍵鼠腳本的回放方法,包括以下步驟:在應(yīng)用程序的運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件;所述鍵鼠腳本文件的各條腳本中分別包括對應(yīng)的鍵鼠操作事件的位置信息以及操作對象的圖像;當(dāng)所述應(yīng)用程序再次運行或回放時,根據(jù)每條腳本中的位置信息確定再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像,判斷所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像與該條腳本中的操作對象的圖像是否匹配;當(dāng)判斷結(jié)果為是時,針對所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本所對應(yīng)的操作動作。
[0007]可選地,當(dāng)判斷結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作;或者,當(dāng)判斷結(jié)果為否時,進一步查找所述再次運行或回放的應(yīng)用程序界面上是否存在該條腳本中的操作對象的圖像,當(dāng)查找結(jié)果為是時,針對查找到的圖像執(zhí)行該條腳本所對應(yīng)的操作動作;當(dāng)查找結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作。
[0008]可選地,所述操作對象的圖像通過圖像輪廓信息進行標(biāo)識。
[0009]可選地,所述鍵鼠腳本文件中的各條腳本中還分別包括對應(yīng)的鍵鼠操作事件的時間信息,所述時間信息通過本次鍵鼠操作事件相對于上次鍵鼠操作事件的相對時間間隔來表示,或者,通過本次鍵鼠操作事件的發(fā)生時間相對于所述應(yīng)用程序開始運行的時間之間的相對時間間隔來表示。
[0010]可選地,各條腳本所對應(yīng)的操作動作包括:鼠標(biāo)雙擊、鼠標(biāo)單擊、鼠標(biāo)右鍵按下和鍵盤輸入。
[0011]根據(jù)本發(fā)明的另一個方面,提供了一種鍵鼠腳本的回放裝置,包括:記錄模塊,適于在應(yīng)用程序的運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件;所述鍵鼠腳本文件的各條腳本中分別包括對應(yīng)的鍵鼠操作事件的位置信息以及操作對象的圖像;確定模塊,適于當(dāng)所述應(yīng)用程序再次運行或回放時,根據(jù)每條腳本中的位置信息確定再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像;判斷模塊,適于判斷所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像與該條腳本中的操作對象的圖像是否匹配;當(dāng)判斷結(jié)果為是時,針對所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本所對應(yīng)的操作動作。
[0012]可選地,所述判斷模塊,進一步用于:當(dāng)判斷結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作;或者,所述判斷模塊,進一步用于:當(dāng)判斷結(jié)果為否時,進一步查找所述再次運行或回放的應(yīng)用程序界面上是否存在該條腳本中的操作對象的圖像,當(dāng)查找結(jié)果為是時,針對查找到的圖像執(zhí)行該條腳本所對應(yīng)的操作動作;當(dāng)查找結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作。
[0013]可選地,所述操作對象的圖像通過圖像輪廓信息進行標(biāo)識。
[0014]可選地,所述鍵鼠腳本文件的各條腳本中還分別包括對應(yīng)的鍵鼠操作事件的時間信息,所述時間信息通過本次鍵鼠操作事件相對于上次鍵鼠操作事件的相對時間間隔來表示,或者,通過本次鍵鼠操作事件的發(fā)生時間相對于所述應(yīng)用程序開始運行的時間之間的相對時間間隔來表示。
[0015]可選地,各條腳本所對應(yīng)的操作動作包括:鼠標(biāo)雙擊、鼠標(biāo)單擊、鼠標(biāo)右鍵按下和鍵盤輸入。
[0016]在本發(fā)明提供的鍵鼠腳本的回放方法及裝置中,在腳本程序中不僅記錄了鍵鼠操作事件的位置信息,還記錄了操作對象的圖像,由此一來,當(dāng)調(diào)用腳本程序進行鍵鼠操作事件的回放時,首先根據(jù)位置信息確定該位置當(dāng)前對應(yīng)的圖像,只有在該位置當(dāng)前對應(yīng)的圖像與腳本中記錄的操作對象的圖像匹配時,才執(zhí)行腳本中記錄的鍵鼠操作事件,由此能夠準(zhǔn)確識別操作對象,進而避免了由于操作對象的位置改變所造成的誤操作,降低了鍵鼠回放過程中的誤操作率,提高了用戶體驗滿意度。
[0017]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】
[0018]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0019]圖1示出了本發(fā)明實施例提供的鍵鼠腳本的回放方法的流程圖;
[0020]圖2和圖3示出了本發(fā)明一個具體實施例提供的鍵鼠腳本的回放方法的流程圖;以及
[0021]圖4示出了本發(fā)明實施例提供的鍵鼠腳本的回放裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0022]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0023]本發(fā)明實施例提供了一種鍵鼠腳本的回放方法及裝置,能夠解決現(xiàn)有技術(shù)中用于模擬鍵鼠操作的軟件所普遍存在的誤操作率較高的問題。
[0024]圖1示出了本發(fā)明實施例提供的鍵鼠腳本的回放方法的流程圖。如圖1所示,該方法包括如下步驟:
[0025]步驟SllO:在應(yīng)用程序的運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件。其中,該鍵鼠腳本文件的各條腳本中分別包括對應(yīng)的鍵鼠操作事件的位置信息以及操作對象的圖像。
[0026]步驟S120:當(dāng)該應(yīng)用程序再次運行或回放時,根據(jù)每條腳本中的位置信息確定再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像。
[0027]步驟S130:判斷所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像與該條腳本中的操作對象的圖像是否匹配,當(dāng)判斷結(jié)果為是時執(zhí)行步驟S140。
[0028]步驟S140:針對再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本所對應(yīng)的操作動作。
[0029]可選地,當(dāng)步驟S130的判斷結(jié)果為否時進一步執(zhí)行下述步驟S150:
[0030]步驟S150:不執(zhí)行該條腳本所對應(yīng)的操作動作?;蛘?,進一步查找再次運行或回放的應(yīng)用程序界面上是否存在該條腳本中的操作對象的圖像,僅在查找結(jié)果為是時,針對查找到的圖像執(zhí)行該條腳本所對應(yīng)的操作動作;當(dāng)查找結(jié)果為否時不執(zhí)行該條腳本所對應(yīng)的操作動作。
[0031]由此可見,在本發(fā)明提供的鍵鼠腳本的回放方法中,在腳本程序中不僅記錄了鍵鼠操作事件的位置信息,還記錄了操作對象的圖像,由此一來,當(dāng)調(diào)用腳本程序進行鍵鼠操作事件的回放時,首先根據(jù)位置信息確定該位置當(dāng)前對應(yīng)的圖像,只有在該位置當(dāng)前對應(yīng)的圖像與腳本中記錄的操作對象的圖像匹配時,才執(zhí)行腳本中記錄的操作動作,由此避免了由于操作對象的位置改變所造成的誤操作,從而降低了鍵鼠回放過程中的誤操作率,提高了用戶體驗滿意度。
[0032]下面通過一個具體實施例詳細(xì)描述一下本發(fā)明提供的鍵鼠腳本的回放方法。在該實施例中,以用戶玩游戲時的應(yīng)用場景為例進行介紹,因此,本實施例中的應(yīng)用程序為游戲程序。如圖2所示,該方法具體包括如下步驟:
[0033]步驟S210:在游戲程序的首次運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件。其中,每當(dāng)檢測到一次鍵鼠操作事件時,就在該鍵鼠腳本文件中新建一條腳本,通過該腳本來記錄本次鍵鼠操作事件的時間信息、位置信息、操作動作以及操作對象的圖像。
[0034]其中,鍵鼠操作事件具體指用戶通過鍵盤或鼠標(biāo)進行操作時所產(chǎn)生的事件。具體地,在游戲程序的運行過程中,會持續(xù)不斷地監(jiān)聽是否有針對該游戲程序而發(fā)出的鍵鼠操作事件(具體監(jiān)聽方法可通過本領(lǐng)域技術(shù)人員所熟知的方式實現(xiàn),此處不再贅述),每當(dāng)監(jiān)聽到一次鍵鼠操作事件時,就會在鍵鼠腳本文件中生成一條腳本來記錄本次鍵鼠操作事件的相關(guān)信息。這些相關(guān)信息主要包括上文提到的鍵鼠操作事件的時間信息、位置信息、操作動作以及操作對象的圖像。其中,鍵鼠操作事件的時間信息通常為相對時間,例如,可以通過本次鍵鼠操作事件相對于上次鍵鼠操作事件的相對時間間隔來表示,或者,也可以通過本次鍵鼠操作事件的發(fā)生時間相對于該游戲程序開始運行的時間之間的相對時間間隔來表示。鍵鼠操作事件的位置信息可以通過發(fā)生鍵鼠操作事件時光標(biāo)相對于屏幕的位置坐標(biāo)來表示,但是,考慮到該游戲程序在運行過程中,顯示界面的顯示方式可以有多種,除全屏顯示外,用戶還可以對顯示界面進行自由縮放,因此,為了更加準(zhǔn)確地確定鍵鼠操作事件的位置,該位置信息優(yōu)選地通過發(fā)生鍵鼠操作事件時光標(biāo)相對于該游戲程序界面的相對位置坐標(biāo)來表示。鍵鼠操作事件的操作動作主要包括:鼠標(biāo)雙擊、鼠標(biāo)單擊、鼠標(biāo)右鍵按下和鍵盤輸入等,因此,上文提到的監(jiān)聽鍵鼠操作事件實際上就是監(jiān)聽是否有上述幾種操作動作發(fā)生,當(dāng)發(fā)生了上述操作動作時則確定監(jiān)聽到了鍵鼠操作事件。鍵鼠操作事件的操作對象的圖像是指:發(fā)生鍵鼠操作事件時光標(biāo)所在區(qū)域的圖像。
[0035]在步驟S210中,獲取鍵鼠操作事件的操作對象的圖像是本發(fā)明中的關(guān)鍵步驟,因此,下面重點介紹一下操作對象的圖像的獲取方式:
[0036]該獲取方式的核心思想在于:通過圖像輪廓信息來識別圖像邊界,從而對圖像加以標(biāo)識。具體地,當(dāng)檢測到鍵鼠操作事件時,首先,抓取當(dāng)前幀,以便得到當(dāng)前游戲程序界面的圖像;然后,使用OpenCV的已知函數(shù)對當(dāng)前幀的圖像進行處理,從而繪制出當(dāng)前幀的圖像輪廓;最后,根據(jù)光標(biāo)所在的位置,得到該位置對應(yīng)的操作對象的圖像輪廓。
[0037]在上述過程中獲取圖像輪廓信息時,可以通過邊緣檢測技術(shù)來實現(xiàn)。邊緣檢測技術(shù)涉及圖像處理和計算機視覺等方面,邊緣檢測的目的是標(biāo)識數(shù)字圖像中亮度變化明顯的點。通常,圖像屬性中的顯著變化反映了屬性的重要事件和變化。這些變化包括:(i)深度上的不連續(xù)、(ii)表面方向不連續(xù)、(iii)物質(zhì)屬性變化和(iv)場景照明變化等。具體地,可以通過上文提到的OpenCV的已知函數(shù)進行邊緣檢測處理。OpenCV是Intel開源計算機視覺庫,它由一系列C函數(shù)和少量C++類構(gòu)成,能夠?qū)崿F(xiàn)圖像處理和計算機視覺方面的很多通用算法。下面對OpenCV中的常用函數(shù)進行簡單介紹:cvFindContours函數(shù)可以得到一個圖像的所有輪廓,返回的是輪廓的數(shù)量,它可以對cvCanny, cvThreshold(), cvAdaptiveThresholdO函數(shù)處理得到的函數(shù)進行輪廓的提??;firstContour參數(shù)可以不用創(chuàng)建空間,在函數(shù)內(nèi)部從函數(shù)CvFindNextContour返回輪廓的指針;最主要的是method參數(shù),這個參數(shù)涉及輪廓的存儲方式,以及什么輪廓能被發(fā)現(xiàn);通過函數(shù)cvStartFindContours, cvFindNextContour, cvEndFindContours可以針對每個輪廓計算它們的周長。通過上述函數(shù)即可獲取到操作對象的圖像輪廓。除了上面介紹的方式之外,本領(lǐng)域技術(shù)人員也可以通過其他方式獲取操作對象的圖像,本發(fā)明對此不作限定。
[0038]為了便于管理各次鍵鼠操作事件中獲取到的操作對象的圖像,還可以預(yù)先設(shè)置一個腳本矩陣,在該腳本矩陣中,按照時間順序依次存儲各次鍵鼠操作事件中獲取到的操作對象的圖像,即:上文提到的光標(biāo)所在位置對應(yīng)的操作對象的圖像輪廓,該圖像輪廓通過邊界坐標(biāo)來表示。腳本矩陣的設(shè)置增加了腳本的讀取速度。
[0039]通過步驟S210就可以將游戲程序首次運行過程中發(fā)生的各次鍵鼠操作事件依次記錄到鍵鼠腳本文件中。
[0040]步驟S220:當(dāng)該游戲程序再次運行或回放時,按照時間信息從第一條腳本開始依次調(diào)用上述鍵鼠腳本文件中的各條腳本。
[0041]前面已經(jīng)介紹過,在腳本中記錄的鍵鼠操作事件的時間信息為相對時間信息,例如,可以是本次鍵鼠操作事件相對于上次鍵鼠操作事件的相對時間間隔,也可以是本次鍵鼠操作事件的發(fā)生時間相對于該游戲程序開始運行的時間之間的相對時間間隔。例如,以后者為例,假設(shè)鍵鼠腳本文件中一共記錄了十個腳本,分別對應(yīng)于十次鍵鼠操作事件。第一個腳本中記錄的鍵鼠操作事件的時間信息為“一分三十秒”,表示第一次鍵鼠操作事件發(fā)生在游戲程序運行了一分三十秒時;第二個腳本中記錄的鍵鼠操作事件的時間信息為“三分五十秒”,表示第二次鍵鼠操作事件發(fā)生在游戲程序運行了三分五十秒時……其余鍵鼠操作事件的時間信息以此類推。
[0042]相應(yīng)地,在游戲程序再次運行或回放時,依次查詢鍵鼠腳本文件的各條腳本中記錄的時間信息。首先,查詢到第一條腳本中記錄的時間信息為“一分三十秒”,因此當(dāng)游戲程序再次運行或回放至一分三十秒時將調(diào)用第一條腳本,以便觸發(fā)第一條腳本中記錄的鍵鼠操作事件;之后,查詢到第二條腳本中記錄的時間信息為“三分五十秒”,因此當(dāng)游戲程序再次運行或回放至三分五十秒時將調(diào)用第二條腳本,以便觸發(fā)第二條腳本中記錄的鍵鼠操作事件……以此類推。
[0043]圖3示出了在步驟S220中調(diào)用各條腳本的過程中所涉及的子步驟的示意圖:
[0044]子步驟S221:在每條腳本的調(diào)用過程中,根據(jù)該條腳本中記錄的位置信息確定游戲程序界面上對應(yīng)位置的圖像。
[0045]具體地,在子步驟S221中,首先,根據(jù)該條腳本中記錄的位置信息確定再次運行或回放的游戲程序界面上對應(yīng)位置的圖像。該條腳本中記錄的位置信息可以通過發(fā)生鍵鼠操作事件時光標(biāo)相對于該游戲程序界面的相對位置坐標(biāo)來表示。該相對位置坐標(biāo)可通過如下方式定義:設(shè)置游戲程序界面左下角的坐標(biāo)為(0,O),右上角的坐標(biāo)為(1,1),則左上角的坐標(biāo)為(0,1),右下角的坐標(biāo)為(1,0)。這樣一來,如果第一條腳本中記錄的位置信息為(1/4,1/5),則可以據(jù)此確定出該位置信息在游戲程序界面上的準(zhǔn)確位置。當(dāng)然,本領(lǐng)域技術(shù)人員還可以通過其他方式來表示位置信息,本發(fā)明對此不作限定。確定出該條腳本中記錄的位置信息在回放的游戲程序界面上的準(zhǔn)確位置之后,就可以獲取到與該條腳本中記錄的位置信息相對應(yīng)的位置的圖像。具體的,可以通過步驟S210中提到的獲取圖像輪廓信息的方式來獲取與該位置信息相對應(yīng)的位置的圖像,具體實現(xiàn)方式參見步驟S210中相應(yīng)部分的描述。
[0046]同樣地,為了便于管理各個腳本調(diào)用過程中獲取到的對應(yīng)位置的圖像,還可以設(shè)置一個回放矩陣,在該回放矩陣中,按照腳本執(zhí)行順序依次存儲各個腳本調(diào)用過程中獲取到的對應(yīng)位置的圖像。
[0047]子步驟S222:判斷該對應(yīng)位置的圖像與該條腳本中記錄的操作對象的圖像是否匹配;當(dāng)判斷結(jié)果為是時,執(zhí)行子步驟S223 ;當(dāng)判斷結(jié)果為否時,執(zhí)行子步驟S224。
[0048]具體地,將子步驟S221中獲取到的對應(yīng)位置的圖像與該條腳本中記錄的操作對象的圖像進行相似度比較,當(dāng)相似度大于設(shè)定閾值時確定二者匹配。具體地,可以通過各種相似度算法進行判斷,另外,當(dāng)設(shè)置有腳本矩陣和回放矩陣時,也可以直接將兩個矩陣中相應(yīng)位置的元素值進行比較,元素值相等時則表示二者匹配。當(dāng)二者匹配時執(zhí)行子步驟S223,當(dāng)二者不匹配時執(zhí)行子步驟S224。
[0049]子步驟S223:針對再次運行或回放的游戲程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本中記錄的操作動作。
[0050]具體地,如果獲取到的對應(yīng)位置的圖像與該條腳本中記錄的操作對象的圖像相匹配,則說明在游戲程序再次運行或回放的過程中,該條腳本的操作對象的位置并沒有發(fā)生改變,因此,直接針對游戲程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本中記錄的操作動作即可準(zhǔn)確模擬出用戶的真實操作。
[0051]子步驟S224:不執(zhí)行該條腳本中記錄的操作動作。
[0052]具體地,如果獲取到的對應(yīng)位置的圖像與該條腳本中記錄的操作對象的圖像不匹配,則說明在游戲程序再次運行或回放的過程中,該條腳本的操作對象的位置發(fā)生了改變,或者,該操作對象并未出現(xiàn),此時,如果直接針對游戲程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本中記錄的操作動作會造成誤操作。原因在于:當(dāng)操作對象不存在或改變了位置時,如果依然針對原位置執(zhí)行原有的操作動作則會發(fā)生錯誤,因此,通過子步驟S224可以有效避免誤操作現(xiàn)象的發(fā)生。
[0053]通過在每條腳本的調(diào)用過程中依次執(zhí)行上述的子步驟S221至子步驟S224即可完成對各條腳本的調(diào)用處理,從而模擬出用戶的一系列操作動作。
[0054]另外,在本發(fā)明其他的實施例中,子步驟S224也可以通過如下替代方式實現(xiàn):
[0055]在子步驟S224的替代方式中,進一步查找再次運行或回放的游戲程序界面上是否存在該條腳本中記錄的操作對象的圖像,當(dāng)查找結(jié)果為是時,針對查找到的圖像執(zhí)行該條腳本中記錄的操作動作;當(dāng)查找結(jié)果為否時,不執(zhí)行該條腳本中記錄的操作動作。
[0056]具體地,在該替代方式中,首先,在再次運行或回放的游戲程序界面上的其他位置查找是否存在該條腳本中記錄的操作對象的圖像。在查找操作對象的圖像時,可以通過步驟S210中提到的獲取圖像輪廓信息的方式來獲取游戲程序界面上的其他位置的圖像,進而確定出是否存在腳本中記錄的操作對象的圖像。在游戲程序界面上進行查找時,為了避免遺漏,可以針對游戲程序界面的全部區(qū)域進行查找;或者,為了提高查找效率,也可以僅查找游戲程序界面的局部區(qū)域,例如,該局部區(qū)域可以是與腳本中記錄的位置信息的距離小于預(yù)設(shè)值的區(qū)域,由此,可以僅在原位置附近進行查找,從而提高查找效率,因為通常情況下,游戲中的操作對象(如人物或物品)即使在游戲的回放過程中改變了位置,但往往與游戲上次運行時出現(xiàn)的位置相距不遠(yuǎn),因此,通過在附近區(qū)域進行局部查找的方式不僅能夠縮短查找時間,也便于快速找到操作對象。
[0057]接下來,當(dāng)在游戲程序界面上的其他位置查找到了該條腳本中記錄的操作對象的圖像時,針對查找到的圖像執(zhí)行該條腳本中記錄的操作動作。例如,假設(shè)該條腳本中記錄的位置信息為(1/4,1/5),但是由于該位置信息處的圖像與腳本中記錄的操作對象的圖像不匹配,因此,在子步驟S224中,在位置信息為(2/4,1/6)處查找到了與腳本中記錄的操作對象的圖像相匹配的圖像,則對查找到的位于(2/4,1/6)處的圖像執(zhí)行腳本中記錄的操作動作(如鼠標(biāo)雙擊、單擊等)。由此能夠準(zhǔn)確地識別并定位操作對象,避免誤操作的發(fā)生。相反,當(dāng)在游戲程序界面上的其他位置也沒有查找到該條腳本中記錄的操作對象的圖像時,說明在本次回放過程中,該操作對象沒有出現(xiàn),因此,不執(zhí)行該條腳本中記錄的操作動作。由于在游戲回放過程中,有些操作對象并不是每次都會出現(xiàn)的,因此,當(dāng)這些操作對象沒有出現(xiàn)時,不執(zhí)行相應(yīng)的鍵鼠動作能夠杜絕誤操作現(xiàn)象的發(fā)生,提高操作的準(zhǔn)確率。
[0058]在本發(fā)明提供的鍵鼠腳本的回放方法中,不僅能夠通過位置信息來進行鍵鼠操作事件的回放,還能夠進一步通過操作對象的圖像來實現(xiàn)對操作對象的準(zhǔn)確識別,從而實現(xiàn)鍵鼠操作事件的準(zhǔn)確回放。該方法尤其適用于發(fā)生在Flash窗口中的鍵鼠操作事件,由于在Flash窗口中無法獲取到操作對象的窗口信息(如類名、句柄等),因此,不能基于窗口信息對操作對象進行識別和定位,所以本發(fā)明正是為了解決這一難題而提出了基于圖像來識別并定位操作對象的方法,由此避免誤操作事件的發(fā)生。
[0059]另外,本發(fā)明除了可以應(yīng)用在游戲程序中,以便幫助用戶練小號,或者協(xié)助用戶完成相同的游戲關(guān)卡或執(zhí)行相同的游戲任務(wù)外,還可以應(yīng)用于其他需要重復(fù)運行或回放的應(yīng)用程序中,本發(fā)明對應(yīng)用程序的類型不作限定。
[0060]圖4示出了本發(fā)明實施例提供的鍵鼠腳本的回放裝置的結(jié)構(gòu)圖。如圖4所示,該裝置包括:記錄模塊41、確定模塊42和判斷模塊43。
[0061]其中,記錄模塊41適于在應(yīng)用程序的運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件;所述鍵鼠腳本文件的各條腳本中分別包括對應(yīng)的鍵鼠操作事件的位置信息以及操作對象的圖像。
[0062]確定模塊42適于當(dāng)所述應(yīng)用程序再次運行或回放時,根據(jù)每條腳本中的位置信息確定再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像。
[0063]判斷模塊43,適于判斷所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像與該條腳本中的操作對象的圖像是否匹配;當(dāng)判斷結(jié)果為是時,針對所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本所對應(yīng)的操作動作。
[0064]可選地,所述判斷模塊43進一步用于:當(dāng)判斷結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作;或者,所述判斷模塊43進一步用于:當(dāng)判斷結(jié)果為否時,進一步查找所述再次運行或回放的應(yīng)用程序界面上是否存在該條腳本中記錄的操作對象的圖像,當(dāng)查找結(jié)果為是時,針對查找到的圖像執(zhí)行該條腳本所對應(yīng)的操作動作;當(dāng)查找結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作。
[0065]可選地,上述操作對象的圖像通過圖像輪廓信息進行標(biāo)識。
[0066]可選地,所述鍵鼠腳本文件的各條腳本中還分別包括對應(yīng)的鍵鼠操作事件的時間信息,所述時間信息通過本次鍵鼠操作事件相對于上次鍵鼠操作事件的相對時間間隔來表示,或者,通過本次鍵鼠操作事件的發(fā)生時間相對于所述應(yīng)用程序開始運行的時間之間的相對時間間隔來表示。
[0067]可選地,各條腳本所對應(yīng)的鍵鼠操作事件的操作動作包括:鼠標(biāo)雙擊、鼠標(biāo)單擊、鼠標(biāo)右鍵按下和鍵盤輸入。
[0068]關(guān)于上述各個模塊的具體工作原理可參照方法實施例中相應(yīng)步驟的描述,此處不再贅述。
[0069]在本發(fā)明提供的鍵鼠腳本的回放方法及裝置中,在腳本程序中不僅記錄了鍵鼠操作事件的時間信息以及位置信息,還記錄了操作對象的圖像,由此一來,當(dāng)調(diào)用腳本程序進行鍵鼠操作事件的回放時,首先根據(jù)位置信息確定該位置當(dāng)前對應(yīng)的圖像,只有在該位置當(dāng)前對應(yīng)的圖像與腳本中記錄的操作對象的圖像匹配時,才執(zhí)行腳本中記錄的鍵鼠操作事件,由此避免了由于操作對象的位置改變所造成的誤操作,從而降低了鍵鼠回放過程中的誤操作率,提高了用戶體驗滿意度。
[0070]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0071]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0072]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0073]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0074]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0075]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0076]應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
【權(quán)利要求】
1.一種鍵鼠腳本的回放方法,包括以下步驟: 在應(yīng)用程序的運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件;所述鍵鼠腳本文件的各條腳本中分別包括對應(yīng)的鍵鼠操作事件的位置信息以及操作對象的圖像; 當(dāng)所述應(yīng)用程序再次運行或回放時,根據(jù)每條腳本中的位置信息確定再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像,判斷所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像與該條腳本中的操作對象的圖像是否匹配;當(dāng)判斷結(jié)果為是時,針對所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本所對應(yīng)的操作動作。
2.如權(quán)利要求1所述的方法,其中,當(dāng)判斷結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作;或者, 當(dāng)判斷結(jié)果為否時,進一步查找所述再次運行或回放的應(yīng)用程序界面上是否存在該條腳本中的操作對象的圖像,當(dāng)查找結(jié)果為是時,針對查找到的圖像執(zhí)行該條腳本所對應(yīng)的操作動作;當(dāng)查找結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作。
3.如權(quán)利要求1所述的方法,其中,所述操作對象的圖像通過圖像輪廓信息進行標(biāo)識。
4.如權(quán)利要求1所述的方法,其中,所述鍵鼠腳本文件的各條腳本中還分別包括對應(yīng)的鍵鼠操作事件的時間信息,所述時間信息通過本次鍵鼠操作事件相對于上次鍵鼠操作事件的相對時間間隔來表示,或者,通過本次鍵鼠操作事件的發(fā)生時間相對于所述應(yīng)用程序開始運行的時間之間的相對時間間隔來表示。
5.如權(quán)利要求1-4任一所述的方法,其中,各條腳本所對應(yīng)的操作動作包括:鼠標(biāo)雙擊、鼠標(biāo)單擊、鼠標(biāo)右鍵按下和鍵盤輸入。
6.一種鍵鼠腳本的回放裝置,包括: 記錄模塊,適于在應(yīng)用程序的運行過程中,通過鍵鼠腳本文件記錄鍵鼠操作事件;所述鍵鼠腳本文件的各條腳本中分別包括對應(yīng)的鍵鼠操作事件的位置信息以及操作對象的圖像; 確定模塊,適于當(dāng)所述應(yīng)用程序再次運行或回放時,根據(jù)每條腳本中的位置信息確定再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像; 判斷模塊,適于判斷所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像與該條腳本中的操作對象的圖像是否匹配;當(dāng)判斷結(jié)果為是時,針對所述再次運行或回放的應(yīng)用程序界面上對應(yīng)位置的圖像執(zhí)行該條腳本所對應(yīng)的操作動作。
7.如權(quán)利要求6所述的裝置,其中,所述判斷模塊,進一步用于:當(dāng)判斷結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作;或者, 所述判斷模塊,進一步用于:當(dāng)判斷結(jié)果為否時,進一步查找所述再次運行或回放的應(yīng)用程序界面上是否存在該條腳本中的操作對象的圖像,當(dāng)查找結(jié)果為是時,針對查找到的圖像執(zhí)行該條腳本所對應(yīng)的操作動作;當(dāng)查找結(jié)果為否時,不執(zhí)行該條腳本所對應(yīng)的操作動作。
8.如權(quán)利要求6所述的裝置,其中,所述操作對象的圖像通過圖像輪廓信息進行標(biāo)識。
9.如權(quán)利要求6所述的裝置,其中,所述鍵鼠腳本文件的各條腳本中還分別包括對應(yīng)的鍵鼠操作事件的時間信息,所述時間信息通過本次鍵鼠操作事件相對于上次鍵鼠操作事件的相對時間間隔來表示,或者,通過本次鍵鼠操作事件的發(fā)生時間相對于所述應(yīng)用程序開始運行的時間之間的相對時間間隔來表示。
10.如權(quán)利要求6-9任一所述的裝置,其中,各條腳本所對應(yīng)的操作動作包括:鼠標(biāo)雙擊、鼠標(biāo)單擊、鼠標(biāo)右鍵按下和鍵盤輸入。
【文檔編號】G06F9/455GK104268006SQ201410584061
【公開日】2015年1月7日 申請日期:2014年10月27日 優(yōu)先權(quán)日:2014年10月27日
【發(fā)明者】陳佃曉 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司