本發(fā)明涉及互聯(lián)網技術領域,特別是涉及一種鍵鼠腳本回放的方法及裝置。
背景技術:
在電腦操作過程中,為了簡化用戶重復執(zhí)行某些鍵盤鼠標的操作,可以對用戶的鍵鼠操作進行腳本錄制,得到記錄有一系列操作的鍵鼠腳本,并通過回放鍵鼠腳本的方式模擬用戶此前執(zhí)行的鍵鼠操作?,F有的回放模式包括后臺和托管兩種模式,后臺模式通過窗口句柄識別目的窗口(即回放所針對的對象窗口),并基于發(fā)送消息的方式實現鍵鼠腳本的執(zhí)行;而托管模式則不關注目的窗口,僅著眼于鍵鼠光標的坐標進行腳本執(zhí)行。因此后臺模式下用戶可以對其他窗口進行操作,而托管模式則需要保證目的窗口位于桌面中并處于頂層位置。
在上述鍵鼠腳本回放的過程中,發(fā)明人發(fā)現:在以托管模式進行回放的過程中,由于光標是全局光標,整個桌面中只有一個,當用戶插入手動操作時,就會“搶奪”腳本執(zhí)行所操作的光標,當用戶將光標移出目的窗口后,就會導致執(zhí)行鍵鼠腳本的失效。例如,在托管模式下執(zhí)行鍵鼠腳本在目的窗口輸入賬號時,用戶將光標移動到其他窗口,則鍵鼠腳本會基于當前的光標位置在其他窗口中繼續(xù)輸入賬號,導致鍵鼠腳本回放發(fā)生錯誤。
技術實現要素:
有鑒于此,本發(fā)明提出了一種鍵鼠腳本回放的方法及裝置,主要目的在于解決用戶的無關操作對鍵鼠腳本回放造成干擾的問題。
依據本發(fā)明的第一個方面,本發(fā)明提供了一種鍵鼠腳本回放的方法,包括:
在通過托管模式進行鍵鼠腳本回放的過程中,獲取當前操作焦點的焦點位置;
確定焦點位置所在的當前窗口;
判斷當前窗口與目的窗口是否為同一個窗口;
若當前窗口與目的窗口不為同一個窗口,則切換到后臺模式進行鍵鼠腳本回放。
依據本發(fā)明的第二個方面,本發(fā)明提供了一種鍵鼠腳本回放的裝置,包括:
獲取單元,用于在通過托管模式進行鍵鼠腳本回放的過程中,獲取當前操作焦點的焦點位置;
確定單元,用于確定獲取單元獲取的所述焦點位置所在的當前窗口;
判斷單元,用于判斷確定單元確定的當前窗口與目的窗口是否為同一個窗口;
切換單元,用于當判斷單元判斷當前窗口與目的窗口不為同一個窗口時,切換到后臺模式進行鍵鼠腳本回放。
借由上述技術方案,本發(fā)明實施例提供的鍵鼠腳本回放的方法及裝置,能夠在以托管模式對鍵鼠腳本進行回放的過程中,獲取當前操作焦點的焦點位置并確定焦點位置所在的當前窗口,判斷焦點位置所在的當前窗口與目的窗口是否為同一個窗口,若不為同一個窗口,則切換到后臺模式進行鍵鼠腳本回放。由于托管模式僅著眼于操作焦點的焦點位置進行腳本執(zhí)行,而托管模式下的操作焦點是全局焦點,整個桌面中只有一個,因此在現有技術中,當用戶插入手動操作時,就會“搶奪”腳本執(zhí)行的操作焦點,當用戶將操作焦點移出目的窗口后,就會導致執(zhí)行鍵鼠腳本的失效。與現有技術相比,本發(fā)明能夠在用戶將操作焦點移出目的窗口對其他窗口進行操作時,自動切換到后臺模式進行鍵鼠腳本回放,從而避免用戶的無關操作對鍵鼠腳本回放造成干擾。
上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目 的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例提供的一種在托管模式下回放鍵鼠腳本出現錯誤的示意圖;
圖2示出了本發(fā)明實施例提供的一種鍵鼠腳本回放的方法的流程圖;
圖3示出了本發(fā)明實施例提供的一種鍵鼠腳本回放的裝置的結構示意圖。
具體實施方式
下面將參照附圖更加詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
用戶通常在計算機上執(zhí)行某些任務的過程中會重復進行一系列的點擊操作,例如在游戲中通過重復點擊目標對象完成任務。由于大量的重復點擊操作是一個機械執(zhí)行的過程,如果通過用戶人為進行點擊不僅造成用戶的操作疲勞,而且還容易使點擊出現錯誤。為了簡化用戶重復執(zhí)行鍵鼠操作,可以在用戶首次進行鍵鼠操作時對用戶執(zhí)行的鍵鼠操作進行腳本錄制,獲得鍵鼠腳本后,由計算機對鍵鼠腳本進行回放,模擬用戶此前執(zhí)行的鍵鼠操作,實現鍵鼠操作的自動執(zhí)行。為了解放用戶的操作,提高點擊的效率和準確性,現有技術中提供了一種方法,即對用戶的點擊操作進行腳本錄制,得到記錄有需要重復執(zhí)行的一系列點擊操作的鍵鼠腳本。在執(zhí)行相關任務的過程中,只需要對相關的鍵鼠腳本進行回放即可代替用戶的手動操作完成任務。但是現有的腳本回放模式還存在一定的缺陷,由于托管模式僅著眼于操作焦點的焦點位置進行腳本執(zhí)行,而托管模式下的操作焦點是全局焦點,整個桌面中只有一個,當以托管模式進行鍵鼠腳本回放的過程中,在執(zhí)行相鄰兩個操作的間隙用戶移動了操作焦點,使操作焦點移出目的窗口,則按照托管模式的回放規(guī)則,會基于移動后的操作焦點繼續(xù)進行腳本回放,從而使針對目的窗口的腳本回放出現錯誤。
為了更好的理解在托管模式進行鍵鼠腳本回放的過程中可能出現的錯誤,以下提供一個場景,以在回放鍵鼠腳本進行賬號輸入的過程中用戶移動了鼠標指針為例來說明鍵鼠腳本回放出現的錯誤。如圖1所示,在屏幕桌面上,賬號登陸界面作為目的窗口,網頁作為其他窗口,當以托管模式回放鍵鼠腳本在賬號登陸界面輸入賬號a*c1**4的過程中,當輸入完a、*、c后,在c與下一個要輸入的字符1之間的間隙內,用戶將鼠標指針移動到網頁的搜索框內,則在托管模式下鍵鼠腳本的執(zhí)行會以鼠標指針當前的位置繼續(xù)進行賬號的輸入,使得在網頁搜索框內繼續(xù)輸入字符1**4,結果造成在賬號登陸界面的輸入出現錯誤。
因此,為了解決用戶的無關操作對鍵鼠腳本回放造成干擾的問題,本發(fā)明實施例提供了一種鍵鼠腳本回放的方法,該方法能夠避免在托管模式進行鍵鼠腳本回放過程中用戶移動操作焦點對鍵鼠腳本回放造成干擾。如圖2所示,該方法包括:
101、獲取當前操作焦點的焦點位置。
在通過托管模式進行鍵鼠腳本回放的過程中,基于托管模式僅著眼于操作焦點的焦點位置進行腳本執(zhí)行的特點,當用戶在腳本中相鄰的兩個操作之間手動插入腳本以外的操作,使操作焦點移出目的窗口后,會造成針對目的窗口的腳本執(zhí)行出現錯誤。因此需要對操作焦點的焦點位置進行監(jiān)控,判斷其是否位于目的窗口中,如果焦點位置不在目的窗口中,則說明存在腳本執(zhí)行以外的用戶操作,會使針對目的窗口的鍵鼠腳本回放出現錯誤。因此,本發(fā)明實施例中在判斷操作焦點是否位于目的窗口中之前,首先需要確定操作焦點的焦點位置。在本步驟中獲取操作焦點的焦點位置可以通過操作焦點的坐標來表示,作為焦點位置的坐標是由數字組成的。
102、確定焦點位置所在的當前窗口。
在進行鍵鼠腳本回放的過程中,由于用戶可以手動插入其他操作,因此操作焦點的焦點的位置可能位于目的窗口中,也可能位于目的窗口外的其他窗口。在本步驟中,可以利用相應的函數根據步驟101獲取的焦點位置得到焦點位置所在的當前窗口,當前窗口可以為目的窗口,也可以為其他窗口。
103、判斷當前窗口與目的窗口是否為同一個窗口。
當步驟102獲取到焦點位置所在的當前窗口后,就需要判斷焦點位置所在的當前窗口是否為目的窗口。在Windows系統(tǒng)中,系統(tǒng)會為每個窗口分配一個句柄,本實施例可以通過句柄標識對當前窗口和目的窗口進行比較,判斷兩者是否為同一個窗口。
104、若當前窗口與目的窗口不為同一個窗口,則切換到后臺模式進行鍵鼠腳本回放。
當通過步驟103確定當前窗口與目的窗口不為同一個窗口,即操作焦點的焦點位置位于目的窗口外,此時若繼續(xù)以托管模式進行腳本回放,則會造成針對目的窗口的鍵鼠腳本回放出現錯誤;而后臺模式通過窗口句柄識別目的窗口(即回放所針對的對象窗口),并基于發(fā)送消息的方式實現鍵鼠腳本的執(zhí)行?;谏鲜鲈?,在確定當前窗口與目的窗口不為同一個窗口,且在鍵鼠腳本執(zhí)行下一個操作之前,應該立即切換到后臺模式進行鍵鼠腳本回放。
由于在后臺模式下進行鍵鼠腳本的執(zhí)行是通過目的窗口對消息指令的執(zhí)行實現的,不再依賴全局焦點,因此用戶操作對全局焦點的控制不會對鍵鼠腳本的回放造成干擾。
本發(fā)明實施例提供的鍵鼠腳本回放的方法,能夠在以托管模式對鍵鼠腳本進行回放的過程中,獲取當前操作焦點的焦點位置并確定焦點位置所在的當前窗口,判斷焦點位置所在的當前窗口與目的窗口是否為同一個窗口,若不為同一個窗口,則切換到后臺模式進行鍵鼠腳本回放。由于托管模式僅著眼于操作焦點的焦點位置進行腳本執(zhí)行,而托管模式下的操作焦點是全局焦點,整個桌面中只有一個,因此在現有技術中,當用戶插入手動操作時,就會“搶奪”腳本執(zhí)行的操作焦點,當用戶將操作焦點移出目的窗口后,就會導致執(zhí)行鍵鼠腳本的失效。與現有技術相比,本發(fā)明能夠在用戶將操作焦點移出目的窗口對其他窗口進行操作時,自動切換到后臺模式進行鍵鼠腳本回放,從而避免用戶的無關操作對鍵鼠腳本回放造成干擾。
為了更好的對上述圖2所示的方法進行理解,作為對上述方法的細化 和擴展,本發(fā)明實施例將針對圖2中的步驟進行詳細說明。
在本發(fā)明實施例的實際操作過程中,需要在一定的時機獲取當前操作焦點的焦點位置。如果在托管模式下鍵鼠腳本執(zhí)行每一個鍵鼠操作之后才獲取焦點位置,例如當操作焦點在目的窗口外執(zhí)行了一個鍵鼠操作A后才獲取焦點位置,并根據焦點位置繼續(xù)執(zhí)行圖2中的步驟102、步驟103、步驟104,這樣做雖然會以后臺模式使鍵鼠腳本繼續(xù)針對目的窗口進行操作,但還是會缺失對目的窗口執(zhí)行鍵鼠操作A,造成針對目的窗口的鍵鼠腳本回放不完整。因此,需要在按照鍵鼠腳本執(zhí)行每一步鍵鼠操作之前就獲取當前操作焦點的焦點位置,并執(zhí)行后續(xù)步驟102、步驟103和步驟104。
當按照正確的時機獲取操作焦點的焦點位置時,就需要準確的獲取焦點位置的坐標。在實際應用中,用戶的操作類型包括鼠標操作和鍵盤操作,對應的,對鼠標操作的操作焦點為鼠標指針,對鍵盤操作的操作焦點為鍵盤光標。在進行鍵鼠腳本回放的過程中,由于存在不同的操作類型,因此針對用戶不同的操作,獲取焦點位置的坐標的方式也會有不同。
當操作焦點為鼠標指針時,獲取操作焦點的焦點位置其實是獲取鼠標指針的坐標。在Windows系統(tǒng)中,系統(tǒng)會發(fā)出一個通知,告訴應用程序某個事情發(fā)生了。例如,單擊鼠標、改變窗口尺寸、按下鍵盤上的一個鍵都會使Windows系統(tǒng)發(fā)送一個消息給應用程序。Windows消息本事是作為一個記錄傳遞給應用程序的,這個記錄(一般在C/C++/匯編中稱為“結構體”)中包含了消息的類型以及其他信息。對于移動鼠標所產生的消息來說,這個記錄中包含了鼠標光標當前的坐標。因此,作為一個可選的實施方式,當用戶對鼠標進行了操作時,可以利用Windows消息處理機制從Windows消息的結構體信息中獲取鼠標指針的坐標。
當操作焦點為鍵盤光標時,獲取操作焦點的焦點位置其實是獲取鍵盤光標的坐標。在Windows系統(tǒng)中,窗口就是通過消息與操作系統(tǒng)互動的,窗口不能直接與使用者交流,使用者移動鍵盤光標、點擊鍵盤等都是通過操作系統(tǒng)與窗口通信的,窗口信息處理函數極為重要,沒有它窗口便不能工作。因此,作為一個可選的實施方式,在實際應用中可以通過調用系統(tǒng)函數從窗口消息中獲取坐標。示例性的,可以調用Windows系統(tǒng)中提供的 GetGUIThreadInfo函數從當前窗口的窗口信息中獲取鍵盤光標的坐標。
在通過上述不同的實施方式獲取到鼠標指針或鍵盤光標的坐標后,就需要確定操作焦點的坐標所在的當前窗口。在Windows系統(tǒng)中,句柄是一個系統(tǒng)內部數據結構的引用。例如,當對一個窗口進行操作時,系統(tǒng)會分配給該窗口一個句柄,應用程序根據窗口句柄就能要求系統(tǒng)對該窗口進行如移動窗口、改變窗口尺寸等操作。在本質上句柄是一種內部代碼,通過該代碼能引用受系統(tǒng)控制的特殊元素,如窗口、圖標、字體、菜單等。由于在Windows系統(tǒng)中,句柄是和對象一一對應的無符號整數值,對象可以映射到唯一的句柄,句柄也可以映射到唯一的對象。因此,確定操作焦點的坐標所在的當前窗口實際上是確定操作焦點的坐標所在的當前窗口的窗口句柄。而在Windows系統(tǒng)提供的各種函數中,WindowFromPoint函數具有獲得包含指定點的窗口的句柄這一功能。因此,作為一種可選的實施方式,可以調用WindowFromPoint函數獲取操作焦點的坐標所在的當前窗口的窗口句柄。
由于句柄和對象是一一對應的,可以通過窗口句柄的比對來判斷窗口是否為同一個窗口。因此,當獲取到操作焦點的坐標所在的當前窗口的窗口句柄后,需要與目的窗口的窗口句柄進行比對,判斷當前窗口與目的窗口是否為同一個窗口。若當前窗口的窗口句柄與目的窗口的窗口句柄相同,則確定當前窗口與目的窗口是同一個窗口;若當前窗口的窗口句柄與目的窗口的窗口句柄不同,則確定當前窗口與目的窗口不是同一個窗口。當確定當前窗口與目的窗口不是同一個窗口后,在鍵鼠腳本執(zhí)行下一個操作之前立即切換到后臺模式進行鍵鼠腳本回放,避免用戶的操作對鍵鼠腳本回放產生干擾。
由于本發(fā)明實施例提供的鍵鼠腳本回放的方法在實施過程中,從獲取焦點位置、確定焦點位置所在的當前窗口、判斷當前窗口與目的窗口是否為同一個窗口等步驟是一個重復循環(huán)的過程,因此在后續(xù)多次執(zhí)行上述步驟的過程中,當確定當前窗口與目的窗口為同一個窗口時,本發(fā)明實施例進一步提供了從后臺模式切換回托管模式進行鍵鼠腳本回放的實現方式。
本發(fā)明實施例在執(zhí)行鍵鼠腳本的每一步操作之前,都能獲取到當前操 作焦點的焦點位置并判斷其是否位于目的窗口中,并根據判斷結果進行后臺模式的切換,避免了針對目的窗口的鍵鼠腳本回放出現錯誤。同時,針對該方法持續(xù)獲取焦點位置、確定焦點位置所在的當前窗口、判斷當前窗口與目的窗口是否為同一個窗口的特點,本發(fā)明實施例還提供了在后續(xù)再次確定當前窗口與目的窗口為同一個窗口時,重新切換回托管模式進行鍵鼠腳本回放的方式,從而能夠在用戶操作或系統(tǒng)環(huán)境復雜的情況下,準確識別哪些操作應該以托管模式進行,哪些操作應該以后臺模式執(zhí)行,在避免用戶操作對鍵鼠腳本回放造成干擾的情況下,實現了針對用戶的操作而進行的托管模式和后臺模式的相互切換,與現有技術中回放模式單一相比,本發(fā)明實施例能夠在鍵鼠腳本回放過程中實現托管模式和后臺模式的靈活切換。
進一步的,作為對上述圖2所示方法的實現,本發(fā)明實施例還提供了一種鍵鼠腳本回放的裝置,如圖3所示,該裝置包括:獲取單元31、確定單元32、判斷單元33及切換單元34,其中,
獲取單元31,用于在通過托管模式進行鍵鼠腳本回放的過程中,獲取當前操作焦點的焦點位置;
確定單元32,用于確定獲取單元31獲取的焦點位置所在的當前窗口;
判斷單元33,用于判斷確定單元32確定的當前窗口與目的窗口是否為同一個窗口;
切換單元34,用于當判斷單元33判斷當前窗口與目的窗口不為同一個窗口時,切換到后臺模式進行鍵鼠腳本回放。
進一步的,獲取單元31用于在執(zhí)行鍵鼠腳本的每一步鍵鼠操作之前,獲取當前操作焦點的焦點位置。
進一步的,獲取單元31用于在當前操作焦點為鼠標指針時,利用Windows消息獲取鼠標指針的坐標。
進一步的,獲取單元31用于在當前操作焦點為鍵盤光標時,獲取當前窗口的窗口信息,并從窗口信息中獲得鍵盤光標的坐標。
進一步的,獲取單元31用于調用GetGUIThreadInfo函數獲取當前窗口的窗口信息。
進一步的,確定單元32用于調用WindowFromPoint函數獲取坐標所在的當前窗口的窗口句柄。
進一步的,判斷單元33用于將當前窗口的窗口句柄與目的窗口的窗口句柄進行比較;
判斷單元33用于當當前窗口的窗口句柄與目的窗口的窗口句柄相同時,確定當前窗口與目的窗口是同一個窗口;
判斷單元33用于當當前窗口的窗口句柄與目的窗口的窗口句柄不同時,確定當前窗口與目的窗口不是同一個窗口。
進一步的,切換單元34用于當判斷單元33確定當前窗口與目的窗口不為同一個窗口時,切換到后臺模式進行鍵鼠腳本回放。
本發(fā)明實施例提供的鍵鼠腳本回放的裝置,能夠在以托管模式對鍵鼠腳本進行回放的過程中,獲取當前操作焦點的焦點位置并確定焦點位置所在的當前窗口,判斷焦點位置所在的當前窗口與目的窗口是否為同一個窗口,若不為同一個窗口,則切換到后臺模式進行鍵鼠腳本回放。由于托管模式僅著眼于操作焦點的焦點位置進行腳本執(zhí)行,而托管模式下的操作焦點是全局焦點,整個桌面中只有一個,因此在現有技術中,當用戶插入手動操作時,就會“搶奪”腳本執(zhí)行的操作焦點,當用戶將操作焦點移出目的窗口后,就會導致執(zhí)行鍵鼠腳本的失效。與現有技術相比,本發(fā)明能夠在用戶將操作焦點移出目的窗口對其他窗口進行操作時,自動切換到后臺模式進行鍵鼠腳本回放,從而避免用戶的無關操作對鍵鼠腳本回放造成干擾。
此外,本發(fā)明實施例在執(zhí)行鍵鼠腳本的每一步操作之前,都能獲取到當前操作焦點的焦點位置并判斷其是否位于目的窗口中,并根據判斷結果進行后臺模式的切換,避免了針對目的窗口的鍵鼠腳本回放出現錯誤。同時,針對該方法持續(xù)獲取焦點位置、確定焦點位置所在的當前窗口、判斷當前窗口與目的窗口是否為同一個窗口的特點,本發(fā)明實施例還提供了在后續(xù)再次確定當前窗口與目的窗口為同一個窗口時,重新切換回托管模式進行鍵鼠腳本回放的方式,從而能夠在用戶操作或系統(tǒng)環(huán)境復雜的情況下,準確識別哪些操作應該以托管模式進行,哪些操作應該以后臺模式執(zhí)行, 在避免用戶操作對鍵鼠腳本回放造成干擾的情況下,實現了針對用戶的操作而進行的托管模式和后臺模式的相互切換,與現有技術中回放模式單一相比,本發(fā)明實施例能夠在鍵鼠腳本回放過程中實現托管模式和后臺模式的靈活切換。
本發(fā)明實施例公開了:
A1、一種鍵鼠腳本回放的方法,所述方法包括:
在通過托管模式進行鍵鼠腳本回放的過程中,獲取當前操作焦點的焦點位置;
確定所述焦點位置所在的當前窗口;
判斷所述當前窗口與目的窗口是否為同一個窗口;
若所述當前窗口與所述目的窗口不為同一個窗口,則切換到后臺模式進行鍵鼠腳本回放。
A2、根據A1所述的方法,所述獲取當前操作焦點的焦點位置,包括:
在執(zhí)行所述鍵鼠腳本的每一步鍵鼠操作之前,獲取當前操作焦點的焦點位置。
A3、根據A1所述的方法,所述當前操作焦點為鼠標指針,所述獲取當前操作焦點的焦點位置,包括:
利用Windows消息獲取所述鼠標指針的坐標。
A4、根據A1所述的方法,所述當前操作焦點為鍵盤光標,所述獲取當前操作焦點的焦點位置,包括:
獲取所述當前窗口的窗口信息,并從所述窗口信息中獲得所述鍵盤光標的坐標。
A5、根據A4所述的方法,所述獲取所述當前窗口的窗口信息,包括:
調用GetGUIThreadInfo函數獲取所述當前窗口的窗口信息。
A6、根據A3至A5中任一項所述的方法,所述確定所述焦點位置所在的當前窗口,包括:
調用WindowFromPoint函數獲取所述坐標所在的當前窗口的窗口句柄。
A7、根據A6所述的方法,所述判斷所述當前窗口與目的窗口是否為 同一個窗口,包括:
將所述當前窗口的窗口句柄與所述目的窗口的窗口句柄進行比較;
若所述當前窗口的窗口句柄與所述目的窗口的窗口句柄相同,則確定所述當前窗口與所述目的窗口是同一個窗口;
若所述當前窗口的窗口句柄與所述目的窗口的窗口句柄不同,則確定所述當前窗口與所述目的窗口不是同一個窗口。
A8、根據A2所述的方法,所述方法進一步包括:
若所述當前窗口與所述目的窗口為同一個窗口,則切換到托管模式進行鍵鼠腳本回放。
B9、一種鍵鼠腳本回放的裝置,所述裝置包括:
獲取單元,用于在通過托管模式進行鍵鼠腳本回放的過程中,獲取當前操作焦點的焦點位置;
確定單元,用于確定所述獲取單元獲取的所述焦點位置所在的當前窗口;
判斷單元,用于判斷所述確定單元確定的所述當前窗口與目的窗口是否為同一個窗口;
切換單元,用于當所述判斷單元判斷所述當前窗口與所述目的窗口不為同一個窗口時,切換到后臺模式進行鍵鼠腳本回放。
B10、根據B9所述的裝置,所述獲取單元用于在執(zhí)行所述鍵鼠腳本的每一步鍵鼠操作之前,獲取當前操作焦點的焦點位置。
B11、根據B9所述的裝置,所述獲取單元用于在當前操作焦點為鼠標指針時,利用Windows消息獲取所述鼠標指針的坐標。
B12、根據B9所述的裝置,所述獲取單元用于在當前操作焦點為鍵盤光標時,獲取所述當前窗口的窗口信息,并從所述窗口信息中獲得所述鍵盤光標的坐標。
B13、根據B12所述的裝置,所述獲取單元用于調用GetGUIThreadInfo函數獲取所述當前窗口的窗口信息。
B14、根據B11至B13中任一項所述的裝置,所述確定單元用于調用WindowFromPoint函數獲取所述坐標所在的當前窗口的窗口句柄。
B15、根據B14所述的裝置,所述判斷單元用于將所述當前窗口的窗口句柄與所述目的窗口的窗口句柄進行比較;
所述判斷單元用于當所述當前窗口的窗口句柄與所述目的窗口的窗口句柄相同時,確定所述當前窗口與所述目的窗口是同一個窗口;
所述判斷單元用于當所述當前窗口的窗口句柄與所述目的窗口的窗口句柄不同時,確定所述當前窗口與所述目的窗口不是同一個窗口。
B16、根據B10所述的裝置,所述切換單元用于當所述判斷單元確定所述當前窗口與所述目的窗口不為同一個窗口時,切換到后臺模式進行鍵鼠腳本回放。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
可以理解的是,上述方法及裝置中的相關特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區(qū)分各實施例,而并不代表各實施例的優(yōu)劣。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發(fā)明的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將 該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發(fā)明實施例的發(fā)明名稱(如確定網站內鏈接等級的裝置)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限 制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。