Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.29;
Скачать: CL | DM;

Вниз

Как прочесть текст в чужом окне?   Найти похожие ветки 

 
ffo_2   (2007-04-20 21:53) [0]

При нажатии на 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;


 
Leonid Troyanovsky ©   (2007-04-20 22:40) [1]


>  Как прочесть текст в чужом окне? [D5, WinXP]

Красть грешно.

--
Regards, LVT.


 
Германн ©   (2007-04-21 02:22) [2]


> Leonid Troyanovsky ©   (20.04.07 22:40) [1]
>
>
> >  Как прочесть текст в чужом окне? [D5, WinXP]
>
> Красть грешно.
>
> --
> Regards, LVT.

Но желание "подгядывать в чужие окна" - это в крови у нас!
:-)


 
Ricks ©   (2007-04-22 20:35) [3]

У безоконного (без HWND) компонента ты текст не получишь. Это одно и тоже что пытаться получть текст, нарисованый на canvas.


 
homm ©   (2007-04-22 21:26) [4]

> Как его прочитать?

тока оптическим распознаванием скриншота окна.


 
Riply ©   (2007-04-22 22:35) [5]

> [4] homm ©   (22.04.07 21:26)
>тока оптическим распознаванием скриншота окна.
> [3] Ricks ©   (22.04.07 20:35)
>У безоконного (без HWND) компонента ты текст не получишь.
>Это одно и тоже что пытаться получть текст, нарисованый на canvas.
Почему ? Например у Label"а получу.
P.S. Все зависит от того какие функции компонент использует для "рисования" :)


 
homm ©   (2007-04-22 22:39) [6]

> Почему ? Например у Label"а получу.

Голословие еще никого не красило ;)


> Все зависит от того какие функции компонент использует для  "рисования"

Хм.. Видимо какие-то из них можно перехватить? Какие и как?


 
Riply ©   (2007-04-22 22:49) [7]

> [6] homm ©   (22.04.07 22:39)
>Хм.. Видимо какие-то из них можно перехватить?
>Какие и как?
У Label"а, например, DrawTextA(W)
Стандартные внедрение и перехват. Я делала по Рихтеру.
>Голословие еще никого не красило ;)
Хамство, впрочем, тоже :)


 
realist   (2007-04-22 22:52) [8]

> Хамство, впрочем, тоже :)

Это не хамство :(


> Стандартные внедрение и перехват.

Имеется ввиду подмена адреса функции DrawText в таблице импорта адресного пространства целевого процесса? Тогда да. Только это, имхо, как микроскопом гвозди…


 
homm ©   (2007-04-22 22:53) [9]

Так и думал, что забуду ник сменить :)

realist = homm


 
Riply ©   (2007-04-22 22:56) [10]

> [8] realist   (22.04.07 22:52)
>Только это, имхо, как микроскопом гвозди…
Иногда бывает очень надо и, если не знаешь других способов,
то хватаешся за микроскоп :)


 
Riply ©   (2007-04-22 23:03) [11]

P.S.
>[10] Riply ©   (22.04.07 22:56)
А ты считаешь, что "тока оптическим распознаванием скриншота окна" - это проще будет ? :)


 
Leonid Troyanovsky ©   (2007-04-22 23:03) [12]


> Riply ©   (22.04.07 22:56) [10]

> Иногда бывает очень надо и, если не знаешь других способов,

Не переживай. Их, считай, и нет иных способов.
Кроме, пожалуй, OCR :)

--
Regards, LVT.


 
Riply ©   (2007-04-22 23:05) [13]

> [12] Leonid Troyanovsky ©   (22.04.07 23:03)
:)


 
homm ©   (2007-04-22 23:15) [14]

> А ты считаешь, что "тока оптическим распознаванием скриншота
> окна" - это проще будет ? :)

Короче это все было к тому, что автор наверное не готов еще ни к прехвату «по Рихтеру», ни тем более OCR, поэтому я и привел этот вариант, что-бы показать безысходность :)


 
ffo_2   (2007-04-27 13:46) [15]


> Короче это все было к тому, что автор наверное не готов
> еще ни к прехвату «по Рихтеру», ни тем более OCR, поэтому
> я и привел этот вариант, что-бы показать безысходность :
> )

А где почитать можно про «по Рихтеру» или  OCR? Или пример какой киньте.
Заранее спасибо


 
ANB ©   (2007-04-27 14:01) [16]


> А где почитать можно про «по Рихтеру»

В книжке Рихтера


 
Mr.Devil ©   (2007-04-27 16:31) [17]


> > А где почитать можно про «по Рихтеру»
> В книжке Рихтера

ЖЖОШ!!! :))


 
piegc   (2007-05-19 15:52) [18]

<a href=  ></a>   [url=][/url]



Страницы: 1 вся ветка

Текущий архив: 2007.07.29;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.021 c
15-1183140482
qoooo
2007-06-29 22:08
2007.07.29
Книга - "Delphi 5, Руководство разработчика"


15-1183515466
Slider007
2007-07-04 06:17
2007.07.29
С днем рождения ! 4 июля 2007 среда


15-1182925482
iXT
2007-06-27 10:24
2007.07.29
OLE Server


6-1167055129
Romas81
2006-12-25 16:58
2007.07.29
cookie и кэша браузера


2-1183361301
Dyakon_Frost
2007-07-02 11:28
2007.07.29
Как присвоить один код для многих компонентов одного типа