Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2008, 22:40   #1
Lich
Пользователь
 
Регистрация: 03.06.2008
Сообщений: 31
Сообщение Получение хэндла дочернего контрола

Есть иерархия:
Форма Tmsgform:
TPanel->Tpagecontrol...
TPanel->Tpanel->Tbutton,tbutton...
Получить мне нужно ТБуттон
Получаю хендл тпанел, потом пытаюся получить еще один хэндл тпанел, но безрезультатно, подскажите как можно получить в такой иерархии хендл нужного класса...
Lich вне форума Ответить с цитированием
Старый 12.06.2008, 08:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но безрезультатно
Ни написав ни единой строки кода результата не получишь. Код в студию или беги читать про FindWindowEx.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.06.2008, 17:51   #3
Lich
Пользователь
 
Регистрация: 03.06.2008
Сообщений: 31
По умолчанию

Код:
begin
wnd[1]:=findwindow('tmsgform',nil);
wnd[2]:=findwindowex(wnd[1],0,'TPanel',nil);
wnd[3]:=findwindowex(wnd[2],0,'Tpanel',nil);
wnd[4]:=findwindowex(wnd[3],0,'tInfBitBtn','Отправить');
if iswindow(wnd[4]) then begin
form1.Caption:='OK';
end;
Вот...

Последний раз редактировалось B_N; 12.06.2008 в 18:00.
Lich вне форума Ответить с цитированием
Старый 13.06.2008, 11:25   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Поставь проверку значения хендла после каждого поиска. и если память не изменяет, то класс вроде чувствителен к регистру.
wnd[3]:=findwindowex(wnd[2],0,'Tpanel',nil);
надо так
wnd[3]:=findwindowex(wnd[2],0,'TPanel',nil);
rpy3uH вне форума Ответить с цитированием
Старый 13.06.2008, 17:43   #5
Lich
Пользователь
 
Регистрация: 03.06.2008
Сообщений: 31
По умолчанию

Всеровно не получается получить хэндл кнопки...
Получилось взять панель вот таким кодом:

wnd[1]:=findwindow('TMsgForm',nil);
wnd[2]:=findwindowex(wnd[1],0,'TPanel',nil);
wnd[3]:=findwindowex(wnd[1],wnd[2],'TPanel',nil); //вот эту панельку
wnd[4]:=findwindowex(wnd[3],0,'TlnfBitBtn',nil);
if iswindow(wnd[4]) then begin
form1.Caption:='OK';

Но вот кнопку не получается, пробовал еще так:

wnd[4]:=findwindowex(wnd[1],wnd[3],'TlnfBitBtn',nil);

Пробовал и текст кнопки писать, но не помогает, не пойму почему...

Может знает кто, как получить?
Lich вне форума Ответить с цитированием
Старый 14.06.2008, 08:53   #6
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

не забывай проверять значения хендлов wnd[3] и wnd[2].
rpy3uH вне форума Ответить с цитированием
Старый 14.06.2008, 18:55   #7
Lich
Пользователь
 
Регистрация: 03.06.2008
Сообщений: 31
По умолчанию

И так и сяк не получается(((..
Кто-нибудь попробуйте получить хэндл окна, скачайте QIP 8060 и там получите хендл TRichviewedit...
Lich вне форума Ответить с цитированием
Старый 01.07.2008, 10:58   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

QIP INFIUM :
Код:
var w:hwnd;
begin
w:=FindWindow('TfrmTabber.UnicodeClass',nil);
w:=FindWindowEx(w,0,'TInfiPageControl.UnicodeClass',nil);
w:=FindWindowEx(w,0,'TQipTabSheet.UnicodeClass',nil);
w:=FindWindowEx(w,0,'TMsgPanel.UnicodeClass',nil);
w:=FindWindowEx(w,0,'TInfuPanel.UnicodeClass',nil);
w:=FindWindowEx(w,0,'TRichView',nil);

caption:=inttostr(w);
end;
Все получается. Ты классы хоть знаешь какие в квипе есть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбиение дочернего окна на колонки... HunterMan Win Api 3 03.04.2008 23:19
Получение почты NoName_emaNoN Win Api 0 29.11.2007 20:47
Получение текущего URL Artem Общие вопросы Delphi 5 08.11.2007 17:26
Получение функций из DLL NITRON Общие вопросы Delphi 8 12.09.2007 17:32
наличие определенного свойства у контрола Toxa Общие вопросы Delphi 5 03.09.2007 16:54