Obtener texto de otra aplicación

Me gustaría recuperar texto de cuadro de texto en mi otra aplicación. ProcessName de la segunda aplicación es 'TestTextBox', el nombre de TextBox es 'textBox1'.

Mi código, que devuelve una cadena vacía:

[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, long wParam, [MarshalAs(UnmanagedType.LPStr)] StringBuilder lParam);

Process[] processes = Process.GetProcessesByName("TestTextBox");
foreach (Process p in processes)
{
    IntPtr pFoundWindow = p.MainWindowHandle;
    const int WM_GETTEXT = 0x0D;
    StringBuilder sb = new StringBuilder();
    IntPtr retVal = SendMessage(pFoundWindow, WM_GETTEXT, 100, sb);
    MessageBox.Show(sb.ToString());
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta