Primero debes de descargar el WinID para saber si el TextBox es Child o Parent y saber cual es su Class y el Class de su Parent si es Child, esto para así saber si debes usar FindWindow o FindWindowEx. Una vez obtenido el Handle el codigo anterior es más facil de usar en Vb.Net:
Public Const _
WM_KEYDOWN As Integer = &H100, _
WM_KEYUP As Integer = &H101, _
WM_CHAR As Integer = &H102
Public Sub SendString(ByVal mHandle As IntPtr, ByVal s As String)
For Each c As String In s
SendKey(mHandle, System.Text.Encoding.Default.GetBytes(c).First)
Threading.Thread.Sleep(10)
Next
End Sub
Public Sub SendKey(ByVal mHandle As IntPtr, ByVal key As Keys)
SendMessage(mHandle, WM_KEYDOWN, key, IntPtr.Zero)
SendMessage(mHandle, WM_CHAR, key, IntPtr.Zero)
SendMessage(mHandle, WM_KEYUP, key, IntPtr.Zero)
End Sub
Y prueba el codigo así:
Debes importar SendMessage, FindWindow y FindWindowEx ( las consigues en pinvoke.net )
Abre un Bloc de Notas y dejalo vacio, en tu Sub Load agrega lo siguiente:
Dim Notepad As IntPtr = FindWindowEx(FindWindow("Notepad", Nothing), 0, "Edit", Nothing)
SendString(Notepad, "Enviando String con SendMessage")
Funciona perfecto ^^