找回密码
 加入
搜索
查看: 3009|回复: 2

如何枚举当前窗口下所有控件ID,在线等!

[复制链接]
发表于 2009-2-11 09:31:03 | 显示全部楼层 |阅读模式
我搜索了下论坛,找到了sanhen大师的一段UDF。
不过只能获取到控件的类名,我想获取控件的ID。不知道该怎么改

#Include <array.au3>

Global $avCtrlList[1] = [0]
$Title = "AutoIt Help"
$Text = ""


$ClassNames = _WinGetClassNameList($Title, $Text)
ConsoleWrite($ClassNames)
MsgBox(0,0,$ClassNames)

;==================================================
; Function _WinGetClassNameList()
;   Returns a string containing a list of all ClassNameNN control IDs in a window.
;   On success returns all ClassNameNN's in a string delimited by @LF.
;   On failure returns 0 and sets @error.
;==================================================
Func _WinGetClassNameList($sWinTitle = "", $sWinText = "")
    Local $c, $NN, $hCtrl
    ; Get list of classes in the window
    Local $sClassList = WinGetClassList($sWinTitle, $sWinText)
    If @error Then Return SetError(1, 0, 0)
    Local $avClassList = StringSplit($sClassList, @LF)
    ; Try different values of NN
    $sClassList = ""
    For $c = 1 To $avClassList[0]
        $NN = 1
        While 1
            $hCtrl = ControlGetHandle($sWinTitle, $sWinText, $avClassList[$c] & $NN)
            If @error Then
                ExitLoop
            Else
                $sClassList &= $avClassList[$c] & $NN & @LF
                $NN += 1
            EndIf
        WEnd
    Next
    Return $sClassList
EndFunc   ;==>_WinGetClassNameList 


[ 本帖最后由 黑菜 于 2009-2-11 16:17 编辑 ]
 楼主| 发表于 2009-2-11 16:04:36 | 显示全部楼层


没人帮我吗??等了一天了。。。。
 楼主| 发表于 2009-2-11 16:17:05 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 17:54 , Processed in 0.082122 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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