【已解决】关于 WinGetClassList 的返回数据
本帖最后由 chishingchan 于 2019-9-23 10:28 编辑$Title = "标题名称"
Local $hWnd = WinWait($Title, "", 10)
WinActivate($hWnd)
Local $sClassList = WinGetClassList($hWnd)
MsgBox(64,"类列表",$sClassList)
请问:如何让 WinGetClassList(或其他) 显示 NN 序列?即 Button1、...、Button7、Static1、...、Startic7。谢谢!
参考图:
是不是每个窗口的类列表的控件名称NN必须是由1开始并递增? chishingchan 发表于 2019-9-23 09:56
是不是每个窗口的类列表的控件名称NN必须是由1开始并递增?
是的,就是以1开始递增 本帖最后由 chishingchan 于 2019-9-23 11:02 编辑
afan 发表于 2019-9-23 10:02
是的,就是以1开始递增
a大,可否帮忙编写脚本,像上面的例子输出为
Button1
...
Button7
Static1
...
Static7
注:Button 和 Static 的字眼不能在脚本上直接明示
本帖最后由 afan 于 2019-9-23 11:19 编辑
chishingchan 发表于 2019-9-23 11:01
a大,可否帮忙编写脚本,像上面的例子输出为
Button1
...
$Title = "标题名称"
Local $hWnd = WinWait($Title, "", 10)
WinActivate($hWnd)
$sClassList = _WinGetClassListNum($hWnd)
MsgBox(64,"类列表", $sClassList)
Func _WinGetClassListNum($hWnd)
Local $sClassList = WinGetClassList($hWnd)
Local $aC = StringRegExp($sClassList, '\V+', 3)
If @error Then Return SetError(1, 0, '')
Local $sOut = '', $ix
For $ii = 0 To UBound($aC) - 1
If IsDeclared($aC[$ii]) Then ContinueLoop
Assign($aC[$ii], 0)
$ix = 0
Do
$ix += 1
If Not ControlGetHandle($hWnd, '', $aC[$ii] & $ix) Then ExitLoop
$sOut &= $aC[$ii] & $ix & @LF
Until 0
Next
Return $sOut
EndFunc ;==>_WinGetClassListNum
页:
[1]