I'd like to retrieve text from textbox in my another application. ProcessName from second application is 'TestTextBox', TextBox's name is 'textBox1'.
My code, which returns empty string:
[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());
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…