05.09.2017, 13:46
(Dieser Beitrag wurde zuletzt bearbeitet: 06.09.2017, 05:31 von WillWissen.
Bearbeitungsgrund: Code in Codetags gesetzt
)
Guten Tag liebe VBA-Spezialisten
Mit Hilfe von Schauan konnte ich mit dem nachfolgenden Code ganz gut den Inhalt einer fremden Applikation auslesen. Vor Kurzem wurde diese Applikation verbessert und nun bekomme ich den Text nicht mehr. Bzw. es kommt nun beim Class zu dem Wert "chrome_renderwidgethosthwnd". Trotz intensiver Recherche bekomme ich es nicht mehr hin, den Wert auszulesen.
Bitte helft mir oder ich muss eine ganz andere Lösung suchen.
Gruss
Stefan1
------ Excel-Modul VBA -----
Mit Hilfe von Schauan konnte ich mit dem nachfolgenden Code ganz gut den Inhalt einer fremden Applikation auslesen. Vor Kurzem wurde diese Applikation verbessert und nun bekomme ich den Text nicht mehr. Bzw. es kommt nun beim Class zu dem Wert "chrome_renderwidgethosthwnd". Trotz intensiver Recherche bekomme ich es nicht mehr hin, den Wert auszulesen.
Bitte helft mir oder ich muss eine ganz andere Lösung suchen.
Gruss
Stefan1
------ Excel-Modul VBA -----
Code:
Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Const GC_CLASSNAMEMSFORM = "ThunderDFrame"
Const GWL_STYLE = -16
Const WS_VISIBLE = &H10000000
'Zwischenspeicher
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Const WM_SETTEXT = &HC
Const WM_GETTEXT = &HD
Function InOutText() As String
Dim Result&, Handle&, Parent, p As POINTAPI, Buffer$, Class$
Result = GetCursorPos(p)
Handle = WindowFromPoint(p.x, p.y)
Parent = GetParent(Handle)
Class = SPACE$(128)
Result = GetClassName(Handle, Class, 128)
Class = LCase(Left$(Class, Result))
On Error Resume Next
Buffer = SPACE$(32767)
Result = SendMessage(Handle, WM_GETTEXT, Len(Buffer), ByVal Buffer)
InOutText = Left$(Buffer, Result)
If Err.Number > 0 Then
End If
End Function