Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Функция GetWindowText и дочернее окно

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Функция GetWindowText и дочернее окно
Имя
Сообщение << Старые топики   Новые топики >>
Функция GetWindowText и дочернее окно - 2010-03-26 18:08:43.886666   
ZISTOR

Сообщений: 29
Оценки: 0
Присоединился: 2008-08-19 13:29:37.810000
Подскажите ктонибудь как получить содержимое чужого дочернего окна фуекцией GetWindowText. Заголовок основного окна читается, а когда подаёш ей Handle внтреннего Edit-окна  овечает пустотой. Я догадываюсь, что внутренее Handle приподносить нужно кекто поособому - пол дня гуглил, искал понятные примеры - ничего похожего не выкопал!
Пожалуйста подскажите какие функции надо применить чтобы порабатить эту GetWindowText. Мож кто примером расщедрится - буду очень благодарен!
Вот место где я забуксовал:

&nbsp;var
 buff: array [0..127] of Char; //задаётся буфер принимающий строку//
&nbsp;procedure TForm1.Button1Click(Sender: TObject);
&nbsp;&nbsp; begin
  GetWindowText(1048864, buff, sizeof(buff)); //узнаем заголовок окна
  Memo1.Lines.Add(buff);  // вставляем его в мемо&nbsp;
 end;

Post #: 1
RE: Функция GetWindowText и дочернее окно - 2010-03-26 18:22:32.826666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
1048864 - что это за волшебное число?

P.S. попробуй GetDlgItemText
Post #: 2
RE: Функция GetWindowText и дочернее окно - 2010-03-26 19:52:49.800000   
Zmaster

Сообщений: 930
Оценки: 0
Присоединился: 2007-02-09 19:02:43.500000
quote:

1048864 - что это за волшебное число?

Думаю, это дескриптор окна, найденный через какой-нибудь WinSight32.
ZISTOR, используй для поиска функции GetWindow - для главного окна, GetWindowEx - чтобы найти дочернее окно. Поиск производится по заголовку или/и классу окна. Дочернее нужно искать по классу.
Post #: 3
RE: Функция GetWindowText и дочернее окно - 2010-03-26 20:05:16.253333   
ZISTOR

Сообщений: 29
Оценки: 0
Присоединился: 2008-08-19 13:29:37.810000
quote:

ORIGINAL: _SaZ_

1048864 - что это за волшебное число?


:DНу я понимаю - там переменная должна быть - эт с целью научного эксперемента я ей скормил готовый результат, я вобщемто взялся разбираться с этой функцию минуя изучение получение Handle. Плучил я идентификатор окна программой Window Scanner.

Благодарю, сейчас найду в справочнике GetDlgItemText, посмотрим что за зверь!

Благодарю Zmaster,  с этотим вариантом  мне полюбому придётся разбираться, как я вас понял - проблема тогда сама решится. Я то ещё удивлялся когда видел  GetWindow с ex на конце, в справочниках она без ех, и нигде не пишется про ех - понял её значение только благодаря вашему ответу.
Post #: 4
RE: Функция GetWindowText и дочернее окно - 2010-03-27 00:47:25.093333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
А ты не думал, что при каждом запуске программы у окна будет новый дескриптор? Да вам надо с Рихтера начинать.
Post #: 5
RE: Функция GetWindowText и дочернее окно - 2010-03-29 08:00:44.903333   
Stil Free 2

Сообщений: 183
Оценки: 0
Присоединился: 2009-03-26 17:17:38.296666
Ну вообще как бы была у меня тоже подобная морока. А самое обидное чт ов семерке с Edit-a нечитается текст с окон.
Код на C++
quote:

hWnd = FindWindow(0,"Form1")-&gt;m_hWnd;
if (hWnd!=NULL)
{
EnumChildWindows(hWnd,(WNDENUMPROC)&EnumWinProc,0);
}

Ищем окно и вызываем callback функцию передавая наш HADLE окна.
quote:

BOOL __stdcall EnumWinProc(HWND wnd, LPARAM lParam)
{
char *title = new char[255];
GetClassName(wnd,title,255); //Получаем класс
if (strcmp(title,"Edit") == 0)
{
int ID = GetWindowLong(wnd, GWL_ID); //Шарим ID Edit-а на форме
itoa(ID,title,10);
SendDlgItemMessage(wnd,ID,WM_SETTEXT,0,(LPARAM)(LPCSTR)title);// Посылаем сообщение
AfxMessageBox(title);
}
SendDlgItemMessage(AfxGetMainWnd()-&gt;m_hWnd,IDC_LIST1,LB_ADDSTRING,1,(LPARAM)(LPCSTR)title);
delete [] title;
return(true);
}

Ну и вот послыаем ему текст..
Post #: 6
RE: Функция GetWindowText и дочернее окно - 2010-03-29 09:59:13.933333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
А там точно не UNICODE?
Post #: 7
RE: Функция GetWindowText и дочернее окно - 2010-03-30 11:18:44.420000   
Stil Free 2

Сообщений: 183
Оценки: 0
Присоединился: 2009-03-26 17:17:38.296666
Скорее всего юникод поэтому GetDlgItemTextW просто не правдали?
Post #: 8
RE: Функция GetWindowText и дочернее окно - 2010-03-30 12:35:26.390000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
#include <TCHAR.h> со всеми вытекающими типами, чтобы не париться.
Post #: 9
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Функция GetWindowText и дочернее окно







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.