Hi.

Im trying to get the value from a textbox on a different VB6 application. The application with the data has a window called Communicator and the textbox is called txtTotalCyclic. Below is the code i have so far which seems to get the window handle ok but than when trying to get the actual text i get load of square boxes instead of a string. I've tried several forums and seem to be going around in circles here. Thanks in advance for any suggestions.

Code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal strClassName As Any, ByVal strWindowText As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As Any, ByVal lpsz2 As String) As Long

Private Declare Function GetWindow Lib "user32" Alias "GetWindowA" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hwnd As Long, ByVal msg As Long, ByRef wParam As Any, ByRef lParam As Any) As Long

Const GW_CHILD = 5
Private Const WM_GETTEXT                    As Long = &HD
Private Const WM_GETTEXTLENGTH              As Long = &HE

Function GetCommCyclic()
Dim lngParent As Long
Dim lngChild As Long
Dim lret As Long
Dim lBuff As String
Dim iText


CommsWindowTitle = "Communicator"
lngParent = FindWindow(0&, CommsWindowTitle)

If lngParent <> 0 Then
    lngChild = FindWindowEx(lngParent, 0, 0&, vbNullString)
    
    Do While lngChild <> 0
    lngChild = FindWindowEx(lngParent, lngChild, vbNullString, vbNullString)
    txtLen = SendMessage(lngChild, WM_GETTEXTLENGTH, ByVal 0, ByVal 0)
    lBuff$ = String$(txtLen + 1, 0)
    Call SendMessageByString(lngChild, WM_GETTEXT, txtLen + 1, a)
    iText = lBuff$
    Loop

        End If
End Function