lsqyx528 发表于 2010-8-4 10:59:27

【已解决】AutoIt对gdkWindow无法进行很好的控制

本帖最后由 lsqyx528 于 2010-8-18 14:56 编辑

这些天一直在研究用AutoIt去控制gdkWindow(Wireshark),却苦于找不到好的方法。快捷键之类的是可以,但是对窗口内部的控件,用Window Info捕捉到的controlID一般是:,
但是今天发现INSTANCE的数值不是固定的,会变化。所以觉得用AutoIt无法对此类软件进行很好的控制,不知有没有哪位大侠有过这方面的开发经验,交流一下。

lxd510213 发表于 2010-8-8 15:34:21

我也在找寻这方面的答案,先顶下

zps26 发表于 2010-8-9 08:12:40

先获取控件的父窗口句柄,再用_WinAPI_GetDlgItem获取控件句柄就可以直接定位了,以前遇到过此种情况。

lsqyx528 发表于 2010-8-9 09:46:43

回复 3# zps26


   你好,可以给一个实际一点的例子吗?我试了一下你说的方法,实在没有找到怎么弄得出来

zps26 发表于 2010-8-9 10:59:33

本帖最后由 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]
查看完整版本: 【已解决】AutoIt对gdkWindow无法进行很好的控制