Tja, ist halt die Frage, wo man seine Ziele steckt…
Du könntest Dich natürlich auch auf Text in Edit-Controls beschränken und dann mittels Windows-Nachrichten den markierten Text bestimmen (WM_GETTEXT und EM_GETSEL, u.a. im MSDN beschrieben).
Damit bekommst Du zwar nicht mehr jeden Text überall, aber die meisten Fenster, in denen man Text eingeben kann, basieren letztlich auf einem Control, das diese Nachrichten versteht bzw. korrekt beantwortet.
Dann stellt sich noch die Frage, wann und wie Du den Text haben willst. Nachdem Du ja den Text aus anderen Anwendungen haben willst, wird vermutlich Deine Applikation in dem Moment nicht den Fokus haben, Du müsstest also vermutlich eine Hook-Prozedur einrichten (such dazu am besten auch mal im MSDN nach WH_MOUSE), die dann z.B. das Fenster bestimmt, auf dem der Mauszeiger gerade ist. An dieses Fenster gehen dann die Windows-Nachrichten und das Ergebnis kannst Du an Deine Anwendung weiterreichen.
Alles in allem nicht ganz trivial (insbesondere, weil man mit Hooks auch recht viel kaputt machen kann), aber auch ohne OCR machbar…
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]