Главная страница
    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.058 c
15-1182903039
partizan
2007-06-27 04:10
2007.07.29
Разноцветный TreeView


15-1182582665
IMHO
2007-06-23 11:11
2007.07.29
О декомпиляции, клонировании, Dephi и Java


6-1161766282
Denizzz
2006-10-25 12:51
2007.07.29
ServerSocket, ClientSocket и "выдергивание шланга из сетевухи"


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


15-1182910386
Slider007
2007-06-27 06:13
2007.07.29
С днем рождения ! 27 июня 2007 среда





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский