Wenn du die Formatinformationen nicht brauchst, dann geht's auch noch recht einfach:
Delphi-Quellcode:
function GetForeignWindowText(wnd: HWND): string;
var
len: Integer;
begin
len := SendMessage(wnd, WM_GETTEXTLENGTH, 0, 0);
SetLength(Result, len);
SendMessage(wnd, WM_GETTEXT, len + 1, Integer(@Result[1]));
end;