6

私は winapi を使用して Web ページ ダイアログを処理していますが、Excel VBA エディター以外の Visual Studio やその他のツールにアクセスできません。また、私はwinapiの経験がありません。この Web ページ ダイアログのボタンをクリックして、テキストを入力したいと思います。
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 つの子ウィンドウのカウントが得られますが、そのうちタイトルは 2 つだけです。getwindows テキストには何も表示されません。

これらの子ウィンドウに関するプロパティやその他の関連情報を取得するにはどうすればよいですか? winapi ドキュメントで見つけようとしましたが、うまくいきませんでした。

4

1 に答える 1