有没有办法列举某一窗口上的所有控件呢?
有没有办法列举某一窗口上的所有控件呢?也就是找到某一窗口的所有控件。有替代的办法。
AutoItSetOption("WinDetectHiddenText", 1)
+
wingettext()
[ 本帖最后由 jiataifeng 于 2008-5-16 19:35 编辑 ] 有
你去搜索以下“窗口手术师” 的源代码,就知道了 谢谢回复。不过没有找到源代码。
楼上能传一下吗 源代码在 http://www.au3.net.cn/ShowPost.asp?ThreadID=1991 。但好像下不了了
关键的函数在线下面,返回窗口标题为$title的所有控件的数组。
Func _GetClasses($title)
;Get array of each control
Local$buttonCount = 0, $editCount = 0, $staticCount = 0, $i
Local $classes = StringSplit(WinGetClassList($title) , @LF)
Local$classIDs[$classes+1]
Local $count
$classIDs = $classes
For $i = 1 to $classes
Select
Case $classes[$i] = "Button"
$buttonCount = $buttonCount + 1
$classIDs[$i] = $classes[$i] & $buttonCount
Case $classes[$i] = "Edit"
$editCount = $editCount + 1
$classIDs[$i] = $classes[$i] & $editCount
$classes[$i] = "Input"
Case $classes[$i] = "Static"
$staticCount = $staticCount + 1
$classIDs[$i] = $classes[$i] & $staticCount
$classes[$i] = "Label"
Case Else
If StringStripWS($classes[$i],3) <> "" Then
$back = _Name2Link($classes[$i],$count)
If $back = 0 Then
ReDim $count
$count = $classes[$i]
$count = 1
$classIDs[$i] = $classes[$i] & 1
Else
$classIDs[$i] = $count[$back] & ($count[$back]+1)
$count[$back] +=1
EndIf
EndIf
EndSelect
Next
Local $classIDs2
For $i = 1 to $classIDs
If StringStripWS($classIDs[$i],3) <> "" Then
ReDim $classIDs2
$classIDs2 = $classIDs[$i]
EndIf
Next
;Display the results
Local $output = ""
For $i = 1 to UBound($classIDs2) -1
$output = $output & $classIDs2[$i] & @LF
Next
Return $output
EndFunc
[ 本帖最后由 cai_super 于 2008-5-14 13:04 编辑 ] 谢谢你!谢谢你! 下下来研究
学习学习
页:
[1]