itqijian 发表于 2024-1-29 12:01:57

【已解决】怎么根据标题和文本获取控件类名接口?

本帖最后由 itqijian 于 2024-2-2 22:34 编辑




怎么根据标题和随机文本位置,获取指定程序名(如:bfsvc.exe)的 控件类名 (如:Edit3或者编辑框的顺序3)

只会获取句柄: MsgBox(0,"获取控件句柄",ControlGetHandle("配置文件","bfsvc",''))


有什么函数可用?


fybhwsx 发表于 2024-1-30 14:29:49

#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:38:20

fybhwsx 发表于 2024-1-30 14:29
#include

Example()


弄错了,获取控件类名用_WinAPI_EnumChildWindows()试试吧。

itqijian 发表于 2024-1-30 15:36:44

fybhwsx 发表于 2024-1-30 14:38
弄错了,获取控件类名用_WinAPI_EnumChildWindows()试试吧。

好像和这个差不多 _WinAPI_GetClassName   都只是获取到类名 如Edit ,没有完整的Edit3 或者 顺序3.

itqijian 发表于 2024-2-2 15:42:18

:face (13):谁可以帮忙看下怎么办?:face (12):

fybhwsx 发表于 2024-2-2 19:27:04

本帖最后由 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

itqijian 发表于 2024-2-2 19:59:58

fybhwsx 发表于 2024-2-2 19:27
你这不是要找控件类名,是要查找控件接口,用循环吧。。

      Local $kjjk


bfsvc 位置是随机 ,获取失败, 取消ExitLoop 是获取全部的Edit接口数量。

还是没有达到,根据标题和随机文本位置,获取指定程序名控件接口 (如:Edit3或者编辑框的顺序3)

fybhwsx 发表于 2024-2-2 20:25:38

      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)

这样试试。。

itqijian 发表于 2024-2-2 22:32:16

fybhwsx 发表于 2024-2-2 20:25
Local $kjjk
      For $i = 1 To 999
                If StringInStr(ControlGetText('配置文 ...

:face (23):谢谢帮助,可以完美解决。
页: [1]
查看完整版本: 【已解决】怎么根据标题和文本获取控件类名接口?