對AutoIt中控件和窗口的理解


經過嘗試,對AutoIt中Control和Window有了新的認識,分享一下

 

1.Control

現在我想對一個WinForm架構的應用程序進行自動化操作,得到控件Advanced Mode屬性為[Name:XXX]。

然而在該窗口中有多個相同屬性的Control,而依該屬性只能操作最靠前的一個,無法獲取其它。

嘗試解決如下,私自加入Instance屬性,[Name:XXX;Instance:i](i=1,2,3,4,...)

順利達成目的,可以推測,AutoIt獲取到的某個控件句柄原本是一個數組,默認取的第一個值

 

2.Window

仍然是這樣的一個WinForm界面,當我獲取該界面A下的控件[Name:XXX;Instance:1]執行ControlGetFocus時,

卻被強制轉移到先前打開的另一個雷同的WinForm界面B,將焦點轉移到了那個界面B的雷同Control上,

問題點在於用WinText,WinTitle等都無法分離這兩個WinForm窗口,因為它們的屬性都一樣。

發現,控件[Name:XXX;Instance:1]在大的控件X中,而X是比較獨特的

嘗試解決如下,先獲取控件X的句柄$hWnd(ControlGetHandle),再將$hWnd當做Win的句柄執行ControlGetFocus

順利解決這一問題,可見,Win和Control在有些情況下並不需要分的那么清楚

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM