Каким образом получить текст, написанный в editbox-е?

Вопрос:

    Есть окно не моего приложения. Т.к. оно находится поверх всех окон, то заголовок можно получить без особого труда. (это был первый вопрос - как получить заголовок этого окна:-)
    Второй вопрос:
    На этой же форме (окне) имеется EditBox (другой вариант - Memo). Каким образом получить текст, написанный в EditBox-е? Желательно посмотреть работающий пример, т.к. в АПИ не силен.
    

Ответ:

    Данная процедура выводит текст, полученный с Edit'а в окне Windows Notepad'а (Блокнота). Поиск окна выполняется по заголовку (в примере - "Untitled - Notepad"). Если у Вас другая версия программы Notepad (с другим заголовком окна), то необходимо изменить второй параметр в функции FindWindow. Для успешного выполнения процедуры должен быть запущен Notepad. :)
    procedure Test;
    Var CalcWnd: hWnd;
    EditWnd: hWnd;
    TextLength: integer;
    Text: PChar;
    begin
    // Поиск окна по заголовку
    // Если у Вас другой заголовок окна Блокнота,
    // то поменяйте его ниже ____________________
    CalcWnd:=FindWindow(NIL, 'Untitled - Notepad');
    If CalcWnd=0 then
    begin
    MessageBox(0, 'Notepad is not found', 'Error',
    MB_OK or MB_ICONSTOP);
    exit;
    end;
    // Поиск Edit'а
    EditWnd:=FindWindowEx(CalcWnd, 0, 'Edit', NIL);
    If EditWnd=0 then
    begin
    MessageBox(0, 'Notepad has no edit window', 'Error',
    MB_OK or MB_ICONSTOP);
    exit;
    end;
    // Получение длины строки в Edit
    TextLength:=SendMessage(EditWnd, WM_GETTEXTLENGTH, 0, 0);
    // Резервирование буфера, который будет заканчиваться нулём
    GetMem(Text, TextLength+1);
    // Получение строки в зарезервированный буфер
    SendMessage(EditWnd, WM_GETTEXT, TextLength+1, Integer(Text));
    // Вывод полученного текста
    MessageBox(0, Text, 'Here is text from Notepad',
    MB_OK or MB_ICONINFORMATION);
    // Освобождение буфера
    FreeMem(Text, TextLength+1);
    end;
    Novikov Dmitry.