[發明專利]一種控件捕捉方法和設備有效
| 申請號: | 201510061443.6 | 申請日: | 2015-02-05 |
| 公開(公告)號: | CN104598282B | 公開(公告)日: | 2017-10-27 |
| 發明(設計)人: | 林劉生;蔡青峰 | 申請(專利權)人: | 廣州華多網絡科技有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 廣州三環專利商標代理有限公司44202 | 代理人: | 郝傳鑫,熊永強 |
| 地址: | 510000 廣東省廣州市番*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 控件 捕捉 方法 設備 | ||
技術領域
本發明涉及互聯網技術領域,尤其涉及一種控件捕捉方法和設備。
背景技術
在圖形用戶界面(Graphical User Interface,GUI)編程過程中,經常需要對界面進行微調,但每修改一次代碼,就需要重新編譯生成新的程序文件,步驟重復,效率低下。利用Spy++等工具,可以對界面控件進行實時捕捉、監控、修改,避免了反復查看修改源代碼的繁瑣。
Spy++是基于Win32的實用工具,可以方便的查看Win32程序窗口的屬性、子控件結構、窗口的消息等,但是由于基于Qt的圖形用戶界面(基于Qt開發的程序的圖形用戶界面)通常是用QWidget和QGraphicsItem疊加實現,只有根窗口的QWidget是真窗口,具有窗口句柄,其它的子控件QGraphicsItem則沒有窗口句柄的,因此,Spy++無法識別基于Qt的圖形用戶界面的子控件。
發明內容
本發明實施例所要解決的技術問題在于,提供一種控件捕捉方法和設備,以實現針對基于Qt的圖形用戶界面的程序的控件的識別。
為了解決上述技術問題,本發明實施例提供了一種控件捕捉方法,包括:
獲取正在運行的程序;
檢測從所述正在運行的程序中選擇的目標程序;
在所述目標程序的運行進程中加載目標DLL文件,以顯示工具主窗口;
當檢測到通過所述工具主窗口輸入的窗口句柄獲取操作時,獲取所述目標程序對應的目標窗口的窗口句柄,并將所述窗口句柄轉換為Qt指針;
若所述Qt指針不為空,根據所述Qt指針遍歷所述目標窗口的所有子控件,并在所述工具主窗口中輸出所述目標窗口的控件列表;其中,所述目標窗口的控件列表包括所述目標窗口以及所述目標窗口的所有子控件;
當檢測到針對所述目標窗口中的目標控件的操作時,在所述工具主窗口中輸出所述目標控件的控件屬性;其中,所述目標控件包括所述目標窗口或所述目標窗口的子控件。
其中,所述在目標程序的進程對象中加載目標DLL文件,包括:
在所述目標程序的進程對象中啟動一個線程,通過所述線程以所述目標DLL文件的訪問路徑為輸入參數調用指定API,以加載所述目標DLL文件。
其中,所述在所述工具主窗口中輸出所述目標控件的控件屬性之后,還包括:
根據針對所述目標控件的控件屬性的修改操作,修改所述目標子控件的控件屬性。
其中,所述在所述工具主窗口中輸出所述目標控件的控件屬性之后,還包括:
當檢測到針對目標控件的窗口消息監聽指令時,以所述目標控件,以及指定事件為輸入參數重載事件過濾函數,以監聽該目標控件的窗口消息。
其中,所述在所述工具主窗口中輸出所述目標控件的控件屬性之后,還包括:
當檢測到針對目標控件的信號與槽監聽指令時,在信號發生起始時刻、信號發生結束時刻,以及槽被調用起始時刻、槽被調用結束時刻,運行預先定義的回調函數,以監聽目標控件的信號與槽。
相應地,本發明實施例還提供了一種控件捕捉設備,包括:
獲取模塊,用于獲取正在運行的程序;
檢測模塊,用于檢測從所述正在運行的程序中選擇的目標程序;
加載模塊,用于在所述目標程序的運行進程中加載目標DLL文件,以顯示工具主窗口;
所述獲取模塊,還用于當檢測到通過所述工具主窗口輸入的窗口句柄獲取操作時,獲取所述目標程序對應的目標窗口的窗口句柄;
轉換模塊,用于將所述窗口句柄轉換為Qt指針;
輸出模塊,用于當所述Qt指針不為空時,根據所述Qt指針遍歷所述目標窗口的所有子控件,并在所述工具主窗口中輸出所述目標窗口的控件列表;其中,所述目標窗口的控件列表包括所述目標窗口以及所述目標窗口的所有子控件;
所述輸出模塊,還用于當檢測到針對所述目標窗口中的目標控件的操作時,在所述工具主窗口中輸出所述目標控件的控件屬性;其中,所述目標控件包括所述目標窗口或所述目標窗口的子控件。
其中,所述加載模塊,具體用于在所述目標程序的進程對象中啟動一個線程,通過所述線程以所述目標DLL文件的訪問路徑為輸入參數調用指定API,以加載所述目標DLL文件。
其中,所述設備還包括:
修改模塊,用于根據針對所述目標控件的控件屬性的修改操作,修改所述目標子控件的控件屬性。
其中,所述設備還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州華多網絡科技有限公司,未經廣州華多網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510061443.6/2.html,轉載請聲明來源鉆瓜專利網。





