知道控件的句柄,用哪个函数获取控件的Name?
帮助文件没找到,求助ControlGetText ( "窗口标题", "窗口文本", 控件ID)
控件ID 可以用控件句柄
为什么要获取文本? 回复 2# Alam #include <Array.au3>
#include <Constants.au3>
#include <WinAPI.au3>
;额,这个解释起来是一个非常漫长的工程。。。可以概括为:
;有一个EXE程序,我要监控其中的一个控件,这个控件,只有NAME是不变的,所以我采用的方案是:
;控件ID
$id = ''
;我的监控方案是:
While 1
If ControlCommand($title,'',$id,"IsVisible", "") Then
ControlClick($title,'',$id)
EndIf
Sleep(100)
WEnd
;但是因为这个EXE不是我写的,我不知道源码,所以我不确定exe里面还有没别的控件,ID也是
;所以为了验证,
;我借助WinListChildren()可以枚举得到所有控件的句柄,然后我想用这些得到的句柄,去再得到对应的NAME,用来判断整个exe里面,有没重复的NAME
;关于这个函数的用法,见:
; http://autoitx.com/forum.php?mod=viewthread&tid=32018&highlight=%BF%D8%BC%FE%2B%C1%D0%B1%ED
Func WinListChildren($hWnd, ByRef $avArr)
If UBound($avArr, 0) <> 2 Then
Local $avTmp = []
$avArr = $avTmp
EndIf
Local $hChild = _WinAPI_GetWindow($hWnd, $GW_CHILD)
While $hChild
If $avArr+1 > UBound($avArr, 1)-1 Then ReDim $avArr[$avArr+10]
$avArr[$avArr+1] = $hChild
$avArr[$avArr+1] = _WinAPI_GetWindowText($hChild)
$avArr += 1
WinListChildren($hChild, $avArr)
$hChild = _WinAPI_GetWindow($hChild, $GW_HWNDNEXT)
WEnd
ReDim $avArr[$avArr+1]
EndFunc
页:
[1]