學會用按鍵精靈獲取子視窗句柄
電腦的桌面是最頂級的視窗,在桌面裏的其他程序視窗是桌面的子視窗。那到底父視窗和子視窗是怎麼理解的呢?
操作方法
(01)【父視窗與子視窗】每一個窗體form都是一個父視窗,它不是其他任一個窗體的子視窗.窗體上的所有控件,按鈕等就是窗體的子視窗.一個視窗(除了窗體)既可能是父視窗,也可能是子視窗.比如窗體裏面有一個frame,frame裏面的控件就是frame的子視窗,但frame同時也是窗體的子視窗.就像容器裏面裝着容器.最大的那個容器就是窗體.每一個容器裏面的東西就是其子視窗.
(02)【常見的父視窗和子視窗的關係】【父視窗對應一個子視窗】1、 有類名沒有標題(有標題沒有類名)例如:記事本,它只有一個子視窗,子視窗只有類名沒有標題。
(03)我們要如何查找獲取到這個子視窗的句柄呢?首先,我們先複習下按鍵裏的獲取子視窗句柄的命令。命令名稱:FindEx 查找子視窗命令功能:根據父視窗句柄查找子視窗匹配類名或者匹配標題命令參數:參數1 整數型,父視窗句柄參數2 整數型,子視窗句柄參數3 字元串型,匹配類名參數4 字元串型,匹配標題㈠ 先要獲取父視窗的句柄,然後根據父視窗的句柄來找子視窗。記事本父視窗的標題是:無標題 - 記事本 類名是:Notepadhwnd= Plugin.Window.find("Notepad" ,"無標題 - 記事本") //獲取記事本父視窗句柄㈡ 獲取到父視窗句柄之後,我們還需要知道子視窗的類名,類名爲:Editzhwnd = Plugin.Window.findex(hwnd, 0, "Edit", 0) //獲取子視窗句柄*這裏子視窗句柄的值設定爲0,可能會有很多童鞋很困惑,findex命令不就是獲取子視窗句柄的嗎?那這裏還設定一個子視窗句柄的值幹嘛?我要知道還要用findex來找嗎?小編剛接觸這個命令的時候,對於這個參數也非常疑惑,後來發現是這樣的:findex命令裏的子視窗句柄,指的是當前要查找的子視窗上面一個子視窗的句柄。
(04)例如上圖:當我們要找創建時間這個子視窗的時候,findex命令裏的子視窗句柄參數就設定爲紅框裏子視窗的句柄。2、沒有類名也沒有標題父視窗下只有一個子視窗的情況,標題和類名不設定是可以的。hwnd= Plugin.Window.find(0,"無標題 - 記事本")zhwnd = Plugin.Window.findex(hwnd, 0, 0, 0)TracePrint zhwnd結果:
(05)【父視窗對應多個子視窗】1、 多個子視窗的類名或標題不一樣拿有道雲筆記視窗作爲例子:
(06)它的這兩個子視窗的類名標題都不一樣,這樣的情況我們按照前面介紹的父視窗下只有一個子視窗的方式來查找就可以了。代碼:hwnd = Plugin.Window.find(0,"有道雲筆記 Haiye")zhwnd = Plugin.Window.findex(hwnd, 0, "NETEASE POPO2007 List", 0)TracePrint zhwnd結果:
(07)2、 多個子視窗的類名或標題一樣
(08)有道雲筆記下的這兩個子視窗的類名、標題都是一樣的。hwnd = Plugin.Window.find(0,"有道雲筆記 Haiye")HwndEx = Plugin.Window.findex(hwnd, 0, "Popo.UI.Controls.Class.SkinSplitter", 0)上面的代碼只能找到第一個類名爲Popo.UI.Controls.Class.SkinSplitter的子視窗,第二個無法找到。 這樣的情況,該怎麼找第二個呢?在前面我們提到過,findex裏的子視窗句柄這個參數,在這裏我們就可以利用它。思路如下:1、獲取父視窗句柄2、獲取第一個子視窗句柄3、根據父視窗句柄以及第一個子視窗句柄,獲取第二個子視窗句柄代碼:hwnd = Plugin.Window.find(0,"有道雲筆記 Haiye")HwndEx = Plugin.Window.findex(hwnd, 0, "Popo.UI.Controls.Class.SkinSplitter", 0)TracePrint HwndExHwndEx = Plugin.Window.findex(hwnd, HwndEx, "Popo.UI.Controls.Class.SkinSplitter", 0)TracePrint HwndEx結果:
(09)【子視窗下還有子視窗】例如按鍵抓抓視窗:
(10)抓抓父視窗下類名爲#32770的子視窗,它還有它的子視窗,我們如果要找#32770的子視窗下標題爲句柄的視窗,該如何查找呢?思路:1、獲取抓抓父視窗句柄2、根據父視窗句柄找#32770的子視窗句柄3、以#32770的子視窗作爲父視窗, 繼續查找下一級子視窗代碼:hwnd= Plugin.Window.find(0,"按鍵抓抓輔助工具2014.00.14006")zhwnd = Plugin.Window.findex(hwnd, 0, "#32770", 0)zzhwnd = Plugin.Window.findex(zhwnd, 0, 0, "句柄")TracePrint zzhwnd結果:
-
Excel的標準差函數或公式如何使用
Excel的標準差函數或公式如何使用,相信很多使用該軟件的朋友們對這個問題很感興趣,下面給大家介紹一下,希望可以幫助到大家。操作方法(01)如果想要求出B2B3B4的標準差,則選中要顯示結果的單元格。(02)在開始選項卡的右側,點擊自動求和旁邊的小箭頭,單擊其它函數。(03)選擇...
-
如何利用ps去水印
當你在網絡上看到一張圖片的時候很想儲存下來的時候,卻無奈的發現這張圖片有水印,通常我們使用的方法就是截圖,用裁剪的方式去掉有水印的地方,但是如此就會破壞整張圖的佈局美感,下面就教你如何用ps的填充功能快速去除水印。操作方法(01)相信大家對於如何安裝ps已經很...
-
如何將圖片轉換成word文字
在工作生活中,我們經常爲圖片文字識別的問題而煩惱,要知道圖片中的文字是不可編輯的,我們如果想將圖片中的文字提取出來,就只能使用識別工具對圖片進行識別,將其轉換成Word文字。可是,我們要選擇哪一款識別工具呢?大家如何將圖片轉換成Word文字呢?下面我們就一起來看看...
-
如何編寫第一個python程序
對於想要學學習python的同學來說,如何編寫第一個python程序。本篇介紹。編寫python程序方法1(01)開啟系統終端。(02)在命令行輸入python3 ,輸入python3表示用的python3版本,如果只輸入python的話表示用的是python的第2個版本(03)然後輸入print('helloworld')...