找回密码
 加入
搜索
查看: 2339|回复: 4

[AU3基础] 【已解决】AutoIt对gdkWindow无法进行很好的控制

[复制链接]
发表于 2010-8-4 10:59:27 | 显示全部楼层 |阅读模式
本帖最后由 lsqyx528 于 2010-8-18 14:56 编辑

这些天一直在研究用AutoIt去控制gdkWindow(Wireshark),却苦于找不到好的方法。快捷键之类的是可以,但是对窗口内部的控件,用Window Info捕捉到的controlID一般是:[CLASS:gdkWindowChild; INSTANCE:23],
但是今天发现INSTANCE的数值不是固定的,会变化。所以觉得用AutoIt无法对此类软件进行很好的控制,不知有没有哪位大侠有过这方面的开发经验,交流一下。
发表于 2010-8-8 15:34:21 | 显示全部楼层
我也在找寻这方面的答案,先顶下
发表于 2010-8-9 08:12:40 | 显示全部楼层
先获取控件的父窗口句柄,再用_WinAPI_GetDlgItem获取控件句柄就可以直接定位了,以前遇到过此种情况。
 楼主| 发表于 2010-8-9 09:46:43 | 显示全部楼层
回复 3# 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][0]                              ;Window Handle
                $text1 = $aWindows[$i][1]                             ;Window Class
                $text2 = WinGetTitle($aWindows[$i][0])          ;Window Title
                If $text <> "" And $text1 = "Static" And $text2 = "控件标题" Then
                        $PHWnd = _WinAPI_GetParent($text)
                        Return $PHWnd                                     ;返回查找控件父窗口句柄
                        ExitLoop
                EndIf
        Next
EndFunc   ;==>_SMain

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 12:35 , Processed in 0.089313 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表