Форум: "Основная";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
ВнизКак прочесть текст в чужом окне? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.058 c