Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.041 c
15-1182924454
NailMan
2007-06-27 10:07
2007.07.29
Время наработки на отказ?


15-1183475164
TUser
2007-07-03 19:06
2007.07.29
Американская ПРО


2-1183723063
Aragorn
2007-07-06 15:57
2007.07.29
TStrings.Items.Objects


8-1161842358
delphim
2006-10-26 09:59
2007.07.29
доступ нескольких пользователей с данным


15-1183449672
Inco
2007-07-03 12:01
2007.07.29
Проблема с цветом в TurboExplorer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский