企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## **描述** 根据控件的类名得到句柄 ## **语法** GetElementHwndByClassName(*strClassName[, intIndex = 1[, UseRegExp = False]]*) **该语法中有下列命名参数:** | 参数 | 描述 | | --- | --- | | strClassName | 必须的。String类型,表示要查找的控件文字。 | | intIndex| 可选的。Integer类型,表示次序,如果有多个类名相同的控件,那么这个参数就有用了,依次1、2、3。。。用来区分它们,根据自己的需要使用对应的索引获取,默认是1表示符合条件的第一个控件。**这些输入框的索引可能并不是按照肉眼的顺序来的**,如何区分它们请参考[目标窗体中存在多个相同类名的输入框该如何区分填写?](01目标窗体中存在多个相同类名的输入框该如何区分填写?.md)。 | | UseRegExp | 可选的。Boolean 类型,表示是否使用正则。如果忽略,缺省值是 False,它表明默认不使用正则。 | ## **返回值** | Long | | --- | | 根据控件类名获取控件成功则返回控件的句柄,获取失败返回0 | ## **示例** > **示例1** > 说明:请打开一个记事本,点开菜单“帮助” - “关于记事本”,本示例演示的是如何根据类名获得控件句柄,请留意“Button”修改为一个不存在的类名获取的结果。 ``` Dim w As New clsWindow If w.GetWindowByTitle("关于“记事本”", 0).hWnd <> 0 Then MsgBox w.GetElementHwndByClassName("Button") '将成功返回一个数字的句柄 MsgBox w.GetElementHwndByClassName("Buttonxxx") '将会返回0,表示根据指定的类名未获取到句柄 End If ``` > **示例2** > 说明:打开记事本随便输入点内容,然后点击右上角关闭,这时我们会看到是否保存的对话框,里面有3个按钮,通过工具查看发现它们的类名都是“Button”,并且次序正好是依次的1、2、3,这时我们测试获取和3个按钮的句柄。 ![](https://img.kancloud.cn/77/c9/77c91edd83bdfacde8a1bb4c4decff00_494x308.png) ![](https://img.kancloud.cn/25/fa/25fa3ff9869d086b2f1e50335de02098_402x533.png) ``` Dim w As New clsWindow If w.GetWindowByTitleEx("记事本", 0).hWnd <> 0 Then MsgBox w.GetElementHwndByClassName("Button", 1) & " " & vbCrLf & _ w.GetElementHwndByClassName("Button", 2) & " " & vbCrLf & _ w.GetElementHwndByClassName("Button", 3) End If ``` ![](https://img.kancloud.cn/3e/aa/3eaa522f943aaf1b668f256a3be8cea3_608x227.png)