Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.04.2007, 22:00   #1
ffo
 
Регистрация: 14.03.2007
Сообщений: 6
Репутация: 10
По умолчанию Как прочесть текст в чужом окне?

При нажатии на Button1 с помощью функции "EnumChildProc" я перебираю все дочерние окна чужого
окна (кнопки, едиты, комбобоксы и др.), которое имеет тип "TForm1"и заголовок "Исходные данные расчета",
считываю класс, идетификатор и текст каждого дочернего окна и записываю эти данные в Memo1. Все прекрасно работает.
Вопрос мой в следующем: На той же форме есть Label и мне нужен текст, который содержится в
нем. Как его прочитать? Окна ведь нет у этого Label. А может это и не Label вовсе, а какой
нибудь другой безоконный компонент, в который выведен текст. Помогите кто может считать с него текст.


Код:
 
//функция обратного вызова
function EnumChildProc(Ctrl: hWnd; List: TStrings): Bool; stdcall;
var
 Buf : array [0..80] of char;
 Id : integer;
 Caption : array [0..80] of char;
begin
 Result := True;
 GetClassName(Ctrl, buf, 80);//Класс
 Id := GetDlgCtrlId(Ctrl);//Идентификатор
 GetWindowText(Ctrl, Caption, 80);//Текст окна (кнопки)
 Form1.Memo1.Lines.Add(Format('Класс: %s,      Идентификатор: %d,       Заголовок: %s', [Buf, Id, Caption]));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Form1.Memo1.Lines.Clear;
 EnumChildWindows( FindWindow('TForm1', 'Исходные данные расчета'),@EnumChildProc,1);
end;
ffo вне форума   Ответить с цитированием
Старый 21.04.2007, 08:36   #2
rpy3uH
добрый няша
СуперМодератор
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Адрес: Солнечное Тбилиси
Сообщений: 4,806
Репутация: 2006
По умолчанию

ты прав, его нет в списке
мистика какая-то.....
у компоненты TLabel нет свойства Handle значит это не компонент
мне кажется он рисуется как рисунок в канвасе формы, следовательно он идентичен компоненту TImage который тоже просто рисуется в канвасе
rpy3uH вне форума   Ответить с цитированием
Старый 21.04.2007, 18:18   #3
Voland
Heavy metal
Пользователь
 
Аватар для Voland
 
Регистрация: 02.04.2007
Сообщений: 42
Репутация: 62
По умолчанию

Да, TLabel - не оконный компонент. Следовательно, у него нет хендла, и Винда его не видит. Форма, на которой он находится, просто в нужный момент заставляет его отрисовать себя на канве этой формы. Так что его текст из другого приложения ты получить не сможешь.
Voland вне форума   Ответить с цитированием
Старый 27.04.2007, 13:50   #4
ffo
 
Регистрация: 14.03.2007
Сообщений: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Voland Посмотреть сообщение
Да, TLabel - не оконный компонент. Следовательно, у него нет хендла, и Винда его не видит. Форма, на которой он находится, просто в нужный момент заставляет его отрисовать себя на канве этой формы. Так что его текст из другого приложения ты получить не сможешь.
Печальн все это.
А "По Рихтору" или OCR?
ffo вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drag n Drop объект в чужом окне ShiSha_34 Win Api 8 09.11.2010 03:19
Как прочесть исходный текст? Ruber Общие вопросы по Java, Java SE, Kotlin 0 05.06.2008 21:45
Как задать текст в Edit в чужом окне Artem Win Api 6 14.12.2007 20:13
как написать текст в чужом окне мандарин Win Api 2 11.06.2007 11:11
Как при скрытом чужом окне сделать его дочерние окна(сообщения) видимыми ? Starwarrior Win Api 1 20.03.2007 10:51


03:37.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.