【已解决】AutoIt对gdkWindow无法进行很好的控制
本帖最后由 lsqyx528 于 2010-8-18 14:56 编辑这些天一直在研究用AutoIt去控制gdkWindow(Wireshark),却苦于找不到好的方法。快捷键之类的是可以,但是对窗口内部的控件,用Window Info捕捉到的controlID一般是:,
但是今天发现INSTANCE的数值不是固定的,会变化。所以觉得用AutoIt无法对此类软件进行很好的控制,不知有没有哪位大侠有过这方面的开发经验,交流一下。 我也在找寻这方面的答案,先顶下 先获取控件的父窗口句柄,再用_WinAPI_GetDlgItem获取控件句柄就可以直接定位了,以前遇到过此种情况。 回复 3# zps26
你好,可以给一个实际一点的例子吗?我试了一下你说的方法,实在没有找到怎么弄得出来 本帖最后由 zps26 于 2010-9-18 22:57 编辑
#include <WinAPIEx.au3>
#include <WinAPI.au3>
Local $a,$HSEd1
$a = WinGetHandle("被监控的程序名称")
$HSEd1 = _WinAPI_GetDlgItem(_SMain(), 1032)
MsgBox(8192 + 64, "窗口句柄为", $HSEd1, 20)
Func _SMain()
Local $aWindows, $i, $text, $text1, $text2, $PHWnd
$aWindows = _WinAPI_EnumChildWindowS($a, 0) ;0为查找隐藏窗口
For $i = 1 To UBound($aWindows) - 1
$text = $aWindows[$i] ;Window Handle
$text1 = $aWindows[$i] ;Window Class
$text2 = WinGetTitle($aWindows[$i]) ;Window Title
If $text <> "" And $text1 = "Static" And $text2 = "控件标题" Then
$PHWnd = _WinAPI_GetParent($text)
Return $PHWnd ;返回查找控件父窗口句柄
ExitLoop
EndIf
Next
EndFunc ;==>_SMain
页:
[1]