Text aus einer anderen Anwendung

Möchte ich zum abrufen von text aus der textbox in meiner anderen Anwendung. "ProcessName" von der zweiten Anwendung ist 'TestTextBox', Textfeld ' name 'textBox1'.

Mein code, der gibt die leeren 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());
}
LINQ steht noch auf meiner to-do-Liste... Auch die, so wie ich es verstehe, LINQ funktioniert nur unter .NET 3.5 oder höher. Aber dieser code sollte auf alle Art von Windows, einschließlich derer, die haben .NET 2.0
Wie würden Sie wie es zu optimieren ist die Verwendung von LINQ?
Process.GetProcesses().Any(p => p.ProcessName.Contains(processName)); oder etwas entlang jenen Linien. Und ah, wusste nicht, dass Sie benutzt wurden .NET 2!

InformationsquelleAutor sventevit | 2009-12-09

Schreibe einen Kommentar