私は 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 ドキュメントで見つけようとしましたが、うまくいきませんでした。