Markierten Text ermitteln

Hallo,

ich möchte einen markierten Text aus einer anderen Anwendung (Explorer, Textedit oder ähnliches) meiner C# Anwendung übergeben. Wie kann ich diesen Text ermitteln, ohne den Text explizit in die Zwischenablage zu kopieren ?

Hallo!

Wird schwerlich gehen - Du kannst ja x Anwendungen laufen haben, in denen y Textfelder mit markiertem Text sein können. Welches soll’s denn sein?

Falls Du die Identifikation des Fensters aber doch irgendwie geschafft hast, dann müsstest Du per P/Invoke SendMessage aufrufen und WM_GETTEXT an das Fenster schicken.
Funktioniert aber auch nicht 100% zuverlässig, weil manche Textfelder (z.B. gewisse Passwort-Felder) dies unterbinden.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich brauche nur die aktive Anwendung. Gibt es eine Methode diese zu ermitteln ?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich brauche nur die aktive Anwendung. Gibt es eine Methode
diese zu ermitteln ?

GetForegroundWindow ?
Allgemein würde ich Dir raten, für diesen Aufgabenbereich die Win32 API zu konsultieren, daraus wirst Du nämlich alles Mögliche brauchen…

Martin

GetFocus(), oder so ähnlich, findest Du im MSDN. Die gibt ein HWND des aktiven Fensters zurueck, in einer while-Schleife. Sobald dieses ungleich deinem eigenen HWND ist, dann hast Du es. Also, sobald das andere Fenster aktiviert wird.

Mit SendMessage() schickst Du dem eine Konstante (auch eine eigene!), plus WPARAM, LPARAM, die dem sagt, was es machen soll - hier also den Text abschicken.

lg
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]