Używam Winapi do obsługi okna dialogowego strony internetowej i nie mam dostępu do Visual Studio lub innych narzędzi, z wyjątkiem edytora excel vba. Ponadto, nie mam dużego doświadczenia z winapi. Chcę kliknąć na przycisk tego okna strony i wpisać tekst.
Używając winapi mogłem znaleźć jego obsługę i wypróbowałem wyliczanie okien potomnych, ale odebrane informacje nie są poprawne.winapi znajdź tytuł okna użytkownika (właściwości) okna dialogowego strony internetowej
' search for child window accept button
hWndAccept = FindWindowEx(hWndColo, 0, vbNullString, vbNullString)
Debug.Print hWndAccept
i
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
Pierwsza funkcja nie powróci przycisk okna potomne nawet jeśli używam „przycisk” type (typ przycisk html to może być trochę differnt), więc pomyślałem, wyliczając dziecko okno. Robiąc to dostaję 9 okien potomnych, z których otrzymuję tytuł tylko dwóch. tekst getwindows nie wyświetla niczego.
Jak mogę uzyskać właściwości i inne powiązane informacje na temat tych okien podrzędnych? Próbowałem znaleźć w dokumentacji do Winapi, ale bez powodzenia.
Przyciski na stronie internetowej nie są rodzimymi kontrolkami systemu Windows. Do tego scenariusza należy użyć innych technologii, takich jak [Automatyzacja interfejsu użytkownika] (http://msdn.microsoft.com/en-us/library/windows/desktop/ee684009.aspx). Dla stron internetowych w Internet Explorerze patrz [UI Automation for W3C Accessible Rich Internet Applications Specification] (http://msdn.microsoft.com/en-us/library/windows/desktop/ee684013.aspx). – IInspectable
Wygląda na to, że nie możemy go użyć, ponieważ używamy maszyn xp i nie możemy instalować .NET ani żadnego innego SDK. Moją kolejną myślą jest zmiana/manipulacja metodami JS i GET/POST. – msinfo
Manipulowanie JScriptem będzie kłopotliwe do przekradnięcia się przez oprogramowanie antywirusowe. – IInspectable