金豬腳本(原飛豬腳本)以按鈕向?qū)嘤?xùn)為主,UiBot、Python、Lua等腳本編程語言,培訓(xùn)包括全自動辦公腳本、游戲輔助腳本、引流腳本、Web腳本、Android腳本、IOS腳本、注冊腳本、點贊腳本、
想制作腳本和學(xué)習(xí)按鍵精靈的朋友可以添加按鍵精靈學(xué)習(xí)交流群:554127455 學(xué)習(xí)路上不再孤單,金豬腳本伴你一同成長.電腦的桌面是最頂級的窗口,在桌面里的其他程序窗口是桌面的子窗口。那到底父窗口和子窗口是怎么理解的呢?
【父窗口與子窗口】
每一個窗體form都是一個父窗口,它不是其他任一個窗體的子窗口.窗體上的所有控件,按鈕等就是窗體的子窗口.一個窗口(除了窗體)既可能是父窗口,也可能是子窗口.比如窗體里面有一個frame,frame里面的控件就是frame的子窗口,但frame同時也是窗體的子窗口.就像容器里面裝著容器.最大的那個容器就是窗體.每一個容器里面的東西就是其子窗口.
【常見的父窗口和子窗口的關(guān)系】
[backcolor=rgb(245, 222, 179)]
【父窗口對應(yīng)一個子窗口】
1、有類名沒有標題(有標題沒有類名)
例如:記事本,它只有一個子窗口,子窗口只有類名沒有標題。
我們要如何查找獲取到這個子窗口的句柄呢?
首先,我們先復(fù)習(xí)下按鍵里的獲取子窗口句柄的命令。
命令名稱:findEx 查找子窗口命令功能:根據(jù)父窗口句柄查找子窗口匹配類名或者匹配標題命令參數(shù):參數(shù)1 整數(shù)型,父窗口句柄參數(shù)2 整數(shù)型,子窗口句柄參數(shù)3 字符串型,匹配類名
參數(shù)4 字符串型,匹配標題
㈠ 先要獲取父窗口的句柄,然后根據(jù)父窗口的句柄來找子窗口。
記事本父窗口的標題是:無標題 - 記事本 類名是:Notepad
- hwnd= Plugin.Window.find("Notepad" ,"無標題 - 記事本") //獲取記事本父窗口句柄
復(fù)制代碼
㈡ 獲取到父窗口句柄之后,我們還需要知道子窗口的類名,類名為:Edit
- zhwnd = Plugin.Window.findex(hwnd, 0, "Edit", 0) //獲取子窗口句柄
復(fù)制代碼
*這里子窗口句柄的值設(shè)置為0,可能會有很多童鞋很困惑,findex命令不就是獲取子窗口句柄的嗎?那這里還設(shè)置一個子窗口句柄的值干嘛?我要知道還要用findex來找嗎?
小編剛接觸這個命令的時候,對于這個參數(shù)也非常疑惑,后來發(fā)現(xiàn)是這樣的:
findex命令里的子窗口句柄,指的是當前要查找的子窗口上面一個子窗口的句柄。
例如上圖:當我們要找創(chuàng)建時間這個子窗口的時候,findex命令里的子窗口句柄參數(shù)就設(shè)置為紅框里子窗口的句柄。
2、沒有類名也沒有標題
父窗口下只有一個子窗口的情況,標題和類名不設(shè)置是可以的。
- hwnd= Plugin.Window.find(0,"無標題 - 記事本")
- zhwnd = Plugin.Window.findex(hwnd, 0, 0, 0)
- TracePrint zhwnd
復(fù)制代碼
結(jié)果:
【父窗口對應(yīng)多個子窗口】
1、多個子窗口的類名或標題不一樣
拿有道云筆記窗口作為例子:
它的這兩個子窗口的類名標題都不一樣,這樣的情況我們按照前面介紹的父窗口下只有一個子窗口的方式來查找就可以了。
代碼:
- hwnd = Plugin.Window.find(0,"有道云筆記 Haiye")
- zhwnd = Plugin.Window.findex(hwnd, 0, "NETEASE POPO2007 List", 0)
- TracePrint zhwnd
復(fù)制代碼
結(jié)果:
2、多個子窗口的類名或標題一樣
有道云筆記下的這兩個子窗口的類名、標題都是一樣的。
- hwnd = Plugin.Window.find(0,"有道云筆記 Haiye")
- HwndEx = Plugin.Window.findex(hwnd, 0, "Po;, 0)
復(fù)制代碼
上面的代碼只能找到第一個類名為[backcolor=rgb(247, 247, 247)]Po[backcolor=rgb(247, 247, 247)]的子窗口,第二個無法找到。 這樣的情況,該怎么找第二個呢?
在前面我們提到過,findex里的子窗口句柄這個參數(shù),在這里我們就可以利用它。
思路如下:
1、獲取父窗口句柄
2、獲取第一個子窗口句柄
3、根據(jù)父窗口句柄以及第一個子窗口句柄,獲取第二個子窗口句柄
代碼:
- hwnd = Plugin.Window.find(0,"有道云筆記 Haiye")
- HwndEx = Plugin.Window.findex(hwnd, 0, "Po;, 0)
- TracePrint HwndEx
- HwndEx = Plugin.Window.findex(hwnd, HwndEx, "Po;, 0)
- TracePrint HwndEx
復(fù)制代碼
結(jié)果:
【子窗口下還有子窗口】
例如按鍵抓抓窗口:
抓抓父窗口下類名為#32770的子窗口,它還有它的子窗口,我們?nèi)绻?32770的子窗口下標題為句柄的窗口,該如何查找呢?
思路:
1、獲取抓抓父窗口句柄
2、根據(jù)父窗口句柄找#32770的子窗口句柄
3、以#32770的子窗口作為父窗口, 繼續(xù)查找下一級子窗口
代碼:
- 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
復(fù)制代碼
結(jié)果:
大伙兒如果有遇到獲取不了子窗口句柄的情況,歡迎跟帖一起討論~~~
1.《怎么獲取窗口的句柄?我來告訴你答案[按鍵精靈教程]獲取子窗口句柄遇到的多種情況》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《怎么獲取窗口的句柄?我來告訴你答案[按鍵精靈教程]獲取子窗口句柄遇到的多種情況》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/3047270.html