...">
瀏覽量:110次
按鍵精靈句柄窗口內(nèi)的操作要怎么寫,按鍵精靈 句柄 點擊按鈕
精靈官網(wǎng)如何獲得子窗口的句柄?計算機的桌面是頂層窗口,桌面中的其他程序窗口是桌面的子窗口。父窗口和子窗口的理解是什么?如果不知道,可以參考下面按鈕向?qū)Ч倬W(wǎng)獲取子窗口句柄的教程。
【父窗口與子窗口】
每個窗體都是父窗口,但不是任何其他窗體的子窗口。所有控件、按鈕等。窗體上是窗體的子窗口。窗口(窗體除外)可以是父窗口,也可以是子窗口。例如,窗體中有一個框架,框架中的控件是框架的子窗口,但框架也是窗體的子窗口。就像一個容器里裝滿了容器。最大的容器是一個窗體.
[父窗口和子窗口之間的常見關系]
[父窗口對應于子窗口]
1.有類名沒有標題(有標題沒有類名)
比如記事本只有一個子窗口,子窗口只有類名沒有標題。
我們?nèi)绾握业竭@個子窗口的句柄?
首先,讓我們回顧一下在鍵中獲取子窗口句柄的命令。
命令名:
FindEx查找子窗口
命令功能:
根據(jù)父窗口句柄找到子窗口匹配的類名或匹配的標題。
命令參數(shù):
1參數(shù)整數(shù),父窗口句柄
2參數(shù)整數(shù)類型,子窗口句柄
3參數(shù)字符串類型,匹配類名
4參數(shù)字符串類型,匹配標題
(I)先獲取父窗口的句柄,再根據(jù)父窗口的句柄找到子窗口。
記事本的父窗口標題為:無標題-記事本類名為:記事本
hwnd=plugin . window . find(Notepad,untitled-Notepad)//獲取記事本父窗口的句柄
(二)在得到父窗口的句柄后,我們還需要知道子窗口的類名,即:Edit。
HWND=plugin.window.findex (HWND,0,edit,0)//獲取子窗口的句柄
*這里將子窗口句柄的值設置為0,可能會混淆很多童鞋。findex命令不就是為了獲取子窗口句柄嗎?那為什么要在這里設置一個子窗口句柄的值呢?我想知道。我必須使用findex才能找到它嗎?
當邊肖第一次接觸到這個命令時,她也對這個參數(shù)感到非常困惑。后來,她發(fā)現(xiàn)是這樣的:
findex命令中子窗口的句柄是指當前搜索的子窗口上面的子窗口的句柄。
舉個例子,如上圖所示,當我們要查找這個子窗口的創(chuàng)建時間時,findex命令中的子窗口句柄參數(shù)設置為紅框中的子窗口的句柄。
2.沒有類名或標題
如果父窗口下只有一個子窗口,設置標題和類名就可以了。
Hwnd=插件。Window.find(0,無標題-記事本)
zhwnd=插件。Window.findex(hwnd,0,0,0)
TracePrint zhwnd
結(jié)果:
[父窗口對應多個子窗口]
1.多個子窗口的類名或標題是不同的。
以陶云筆記窗口為例:
兩個子窗口的類名和標題是不同的。這種情況下,我們只要按照前面介紹的父窗口下只有一個子窗口的方式去找就可以了。
代碼:
Hwnd=插件。Window.find(0,有云注海爺)
zhwnd=插件。Window.findex(hwnd,0,網(wǎng)易POPO2007列表,0)
TracePrint zhwnd
結(jié)果:
2.多個子窗口的類名或標題相同。
有道筆記下這兩個子窗口的類名和標題是一樣的。
Hwnd=插件。Window.find(0,有云注海爺)
HwndEx=插件。Window.findex(hwnd,0,予言。UI.Controls.Class.SkinSplitter,0)
上面的代碼只能找到類名為Popo . ui . controls . class . skin splitter的第一個子窗口,找不到第二個。在這種情況下,如何找到第二個?
如前所述,這里可以使用findex中的子窗口句柄參數(shù)。
想法如下:
1.獲取父窗口的句柄。
2.獲取第一個子窗口的句柄。
3.根據(jù)父窗口句柄和第一子窗口句柄,獲取第二子窗口句柄。
代碼:
Hwnd=插件。Window.find(0,有云注海爺)
插件。Window.findex(hwnd,0,予言。UI.Controls.Class.SkinSplitter,0)
TracePrint HwndEx
HwndEx=插件。Window.findex(予言hwnd,HwndEx。UI.Controls.Class.SkinSplitter,0)
TracePrint HwndEx
結(jié)果:
[子窗口下有子窗口]
例如,“關鍵暫存”窗口:
在父窗口下抓取類名為#32770的子窗口。它也有它的子窗口。如果想找到#32770的子窗口,怎么找呢?
思路:
1.獲取臨時父窗口的句柄。
2.根據(jù)父窗口句柄找到#32770的子窗口句柄。
3.以#32770的子窗口為父窗口,繼續(xù)尋找下一個子窗口。
代碼:
Hwnd=插件。Window.find(0,按鍵暫存2014.00.14006)
zhwnd=插件。Window.findex(hwnd,0,#32770,0)
ZHWND=plugin . window . findex(ZHWND,0,0,handle)
TracePrint zzhwnd
結(jié)果:
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點,本網(wǎng)不承擔此類稿件侵權行為的連帶責任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權,請您的相關內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認后,會立即刪除,保證您的版權。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776