我正在使用 winapi 处理网页对话框,除了 excel vba 编辑器之外,我无法访问 Visual Studio 或其他工具。另外,我对winapi没有很好的经验。我想单击此网页对话框的某个按钮并输入一些文本。
使用winapi我可以找到它的句柄并尝试枚举子窗口,但收到的信息不正确。
' search for child window accept button
hWndAccept = FindWindowEx(hWndColo, 0, vbNullString, vbNullString)
Debug.Print hWndAccept
和
Public Function EnumChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
Dim slength As Long
Dim wintext As String ' window title text length and buffer
Dim retval As Long ' return value
Dim textlen As Long
Static winnum As Integer ' counter keeps track of how many windows have been enumerated
winnum = winnum + 1
textlen = GetWindowTextLength(hWnd) + 1
' Make sufficient room in the buffer.
wintext = Space(textlen)
' Retrieve the text of window Form1.
slength = GetWindowText(hWnd, wintext, textlen)
' Remove the empty space from the string, if any.
wintext = Left(wintext, slength)
' Display the result.
Debug.Print winnum & wintext
EnumChildProc = 1 ' nonzero return value means continue enumeration
End Function
即使我使用“按钮”类型,第一个函数也不返回按钮子窗口(html按钮类型可能有点不同),所以我想枚举子窗口。这样做我得到了 9 个子窗口的计数,其中我只得到了两个的标题。getwindows 文本不显示任何内容。
我怎样才能获得有关这些子窗口的属性和其他相关信息?我尝试在 winapi 文档中查找,但没有运气。