【已解决】怎么根据标题和文本获取控件类名接口?
本帖最后由 itqijian 于 2024-2-2 22:34 编辑怎么根据标题和随机文本位置,获取指定程序名(如:bfsvc.exe)的 控件类名 (如:Edit3或者编辑框的顺序3)
只会获取句柄: MsgBox(0,"获取控件句柄",ControlGetHandle("配置文件","bfsvc",''))
有什么函数可用?
#include <MsgBoxConstants.au3>
Example()
Func Example()
; 运行记事本程序
Run("notepad.exe")
; 延迟 10 秒, 等待记事本窗口出现.
Local $hWnd = WinWait("", "", 10)
; 使用 WinWait() 返回的句柄检索记事本窗口的类名列表.
Local $sClassList = WinGetClassList($hWnd)
; 显示类名列表.
MsgBox($MB_SYSTEMMODAL, "", $sClassList)
; 使用 WinWait 返回的句柄关闭记事本窗口.
WinClose($hWnd)
EndFunc ;==>Example
fybhwsx 发表于 2024-1-30 14:29
#include
Example()
弄错了,获取控件类名用_WinAPI_EnumChildWindows()试试吧。 fybhwsx 发表于 2024-1-30 14:38
弄错了,获取控件类名用_WinAPI_EnumChildWindows()试试吧。
好像和这个差不多 _WinAPI_GetClassName 都只是获取到类名 如Edit ,没有完整的Edit3 或者 顺序3. :face (13):谁可以帮忙看下怎么办?:face (12): 本帖最后由 fybhwsx 于 2024-2-2 19:33 编辑
你这不是要找控件类名,是要查找控件接口,用循环吧。。
Local $kjjk
For $i = 1 To 999
If ControlGetText('配置文件', 'bfsvc', 'Edit' & $i) Then
$kjjk = 'Edit' & $i
ExitLoop
EndIf
Next fybhwsx 发表于 2024-2-2 19:27
你这不是要找控件类名,是要查找控件接口,用循环吧。。
Local $kjjk
bfsvc 位置是随机 ,获取失败, 取消ExitLoop 是获取全部的Edit接口数量。
还是没有达到,根据标题和随机文本位置,获取指定程序名控件接口 (如:Edit3或者编辑框的顺序3) Local $kjjk
For $i = 1 To 999
If StringInStr(ControlGetText('配置文件', '', 'Edit' & $i), 'bfsvc') Then
$kjjk = 'Edit' & $i
ExitLoop
EndIf
Next
MsgBox($MB_SYSTEMMODAL, "", "$kjjk: " & $kjjk)
这样试试。。 fybhwsx 发表于 2024-2-2 20:25
Local $kjjk
For $i = 1 To 999
If StringInStr(ControlGetText('配置文 ...
:face (23):谢谢帮助,可以完美解决。
页:
[1]