Цитата(Strint @ 7.11.2008, 17:39 ) | | Тем более, как я понимаю, у другого приложения, то что выглядит как TEdit, вовсе не обязательно будет являться классом TEdit |
Верно. Название класса может быть произвольным (Windows такие вещи позволяет). Стандартное - 'Edit'. Проще данные вещи смотреть через сканеры окон.
Приведенный Вами пример в работающем виде:
| Код | procedure TForm1.Button1Click(Sender: TObject); var Wnd: HWND; S: String; Len: Integer; begin Wnd := FindWindow('SciCalc', 'Калькулятор'); if Wnd <> 0 then begin ShowMessage('Найдено окно'); Wnd := FindWindowEx(Wnd, 0, 'Edit', NIL); if Wnd <> 0 then begin Len := SendMessage(Wnd, WM_GETTEXTLENGTH, 0, 0); SetLength(S, Len); SendMessage(Wnd, WM_GETTEXT, Len, Integer(@S[1])); ShowMessage('Найден компонент Edit' + sLineBreak + 'Текст: ' + S); end; end; end;
|
|