GetWindowText() does not work uniformly, particularly if you are not in the same process as the target. But SendMessage does always work. But even if you know the target, send what to it? My answer is that it depends.
My Test:
(1) window class name: Internet Explorer Server
// the following two messages send the whole text into clipboard
SendMessage(handle, WM_COMMAND, 0x0001001F, 0x00000000);
SendMessage(handle, WM_COMMAND, 0x0001000F, 0x00000000);
(2) window class name: Edit (such as notepad)
// I have not keep it minimal
SendMessage(hwnd, 0x0118, 0x0000FFFF, 0xBF8D263B);
SendMessage(hwnd, 0x0118, 0x0000FFFF, 0xBF8D263B);
SendMessage(hwnd, WM_KEYDOWN, 0x00000011, 0x001D0001);
SendMessage(hwnd, 0x0118, 0x0000FFFF, 0xBF8D263B);
SendMessage(hwnd, WM_KEYDOWN, 0x00000041, 0x001E0001);
//SendMessage(hwnd, EM_GETSEL, 0x0007FC68, 0x0007FC6C);
SendMessage(hwnd, WM_GETTEXTLENGTH, 0x00000000, 0x00000000);
SendMessage(hwnd, EM_CANUNDO, 0x00000000, 0x00000000);
SendMessage(hwnd, WM_GETTEXTLENGTH, 0x00000000, 0x00000000);
SendMessage(hwnd, EM_SETSEL, 0x00000000, 0x000000DD);
SendMessage(hwnd, EM_SCROLLCARET, 0x00000000, 0x00000000);
SendMessage(hwnd, WM_KEYUP, 0x00000011, 0xC01D0001);
SendMessage(hwnd, WM_KEYUP, 0x00000041, 0xC01E0001);
SendMessage(hwnd, 0x0118, 0x0000FFFF, 0xBF8D263B);
SendMessage(hwnd, WM_KEYDOWN, 0x00000011, 0x001D0001);
SendMessage(hwnd, 0x0118, 0x0000FFFF, 0xBF8D263B);
SendMessage(hwnd, WM_KEYDOWN, 0x00000043, 0x002E0001);
//SendMessage(hwnd, EM_GETSEL, 0x0007FC68, 0x0007FC6C);
SendMessage(hwnd, WM_GETTEXTLENGTH, 0x00000000, 0x00000000);
SendMessage(hwnd, EM_CANUNDO, 0x00000000, 0x00000000);
//SendMessage(hwnd, EM_GETSEL, 0x0007FA10, 0x0007FA14);
SendMessage(hwnd, WM_COPY, 0x00000000, 0x00000000);
SendMessage(hwnd, WM_DESTROYCLIPBOARD, 0x00000000, 0x00000000);
SendMessage(hwnd, WM_KEYUP, 0x00000011, 0xC01D0001);
SendMessage(hwnd, WM_KEYUP, 0x00000043, 0xC02E0001);
SendMessage(hwnd, 0x0118, 0x0000FFFF, 0xBF8D263B);
Additional Note: You must send it to the control for which you want its text, and top-level window most likely is not what you want! And you may found the following three functions useful: FindWindow(), FindWindowEx(), GetWindow().