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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2012, 09:32   #1
CRESCH
Новичок
Джуниор
 
Регистрация: 24.02.2012
Сообщений: 3
Сообщение Определение Handl'а у TRichViewEdit

Понимаю что тема заезженная но всё-же

Хочу написать программу для клиентской части чата комфорт чтобы при входе любого пользователя в комфорт автоматически отсылалось сообщение *имя пользователя* привет но столкнулся со следующей проблемой:

Код:
var
Okno : HWND;
Msg: HWND;
begin
Okno:= FindWindow(nil,PChar(Edit1.Text+' - CommFort')); 
Msg := FindWindowEx(Okno, 0, 'RichViewEdit', nil);
SendMessage(Msg, WM_SETTEXT, 0, sizeof('ТЕКСТ'));
Hendle окна клиента нахожу без проблем:
Код:
FindWindow(nil,PChar(Edit1.Text+' - CommFort'));
В Edit1 вводится ip адрес сервера

Но вот с определить Hendle компонента не могу
Компонент класса TRichViewEdit

Выполняю проверку на нахождение программы:
Код:
if FindWindow(nil, PChar(Edit1.Text+' - CommFort')) <> 0 then
ShowMessage('Нашел')
else
ShowMessage('Не нашел');
Все нормально но та-же проверка на Hendle компонента в окне не проходит.
Код:
if FindWindowEx(Okno, 0, 'RichViewEdit', nil) <> 0 then
ShowMessage('Нашел')
else
ShowMessage('Не нашел');
end;
Излазил кучу форумов но так и не смог понять в чем причина.

Последний раз редактировалось Stilet; 24.02.2012 в 11:52.
CRESCH вне форума Ответить с цитированием
Старый 24.02.2012, 10:57   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы уверены что класс окна написан без T?
проверьте любой программой для окон.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.02.2012, 11:34   #3
CRESCH
Новичок
Джуниор
 
Регистрация: 24.02.2012
Сообщений: 3
По умолчанию

Цитата:
вы уверены что класс окна написан без T?
проверьте любой программой для окон.


да действительно я ошибся с самого начала в окне где расположено поле как теперь мне попасть именно в нужную мне панель в программе их 2 но мне нужна именно где компонент находится

Пока в голову пришло только это
Код:
var
Okno : HWND;
p1,p2: HWND;
Msg: HWND;
begin
Okno:= FindWindow(nil,'Отправка сообщения');
p1 := FindWindowEx(Okno, 0, 'TPanel', nil);
p2 := FindWindowEx(p1, 0, 'TPanel', nil);
msg := FindWindowEx(p2, 0, 'TRichViewEdit', nil);
SendMessage(Msg, WM_SETTEXT, 0, sizeof('Текст'));
end;
но оно не работает скорее всего из за наличия 2х панелей

Последний раз редактировалось Stilet; 24.02.2012 в 11:54.
CRESCH вне форума Ответить с цитированием
Старый 24.02.2012, 12:00   #4
CRESCH
Новичок
Джуниор
 
Регистрация: 24.02.2012
Сообщений: 3
По умолчанию

Проверил вышеизложенный мною код этим:

Код:
if FindWindowEx(p1, 0, 'TPanel', nil) <> 0 then
ShowMessage('Нашел')
else
ShowMessage('Не нашел');
end;

if FindWindowEx(p2, 0, 'TPanel', nil) <> 0 then
ShowMessage('Нашел')
else
ShowMessage('Не нашел');
end;
панель р1 находит
но вот панель р2 нет
CRESCH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TRichViewEdit artush1984 C++ Builder 2 04.05.2011 14:21
TRichViewEdit - как отловить событие "курсор над таблицей" chandrasecar Компоненты Delphi 0 05.04.2009 20:04
Определение IP IvanLex HTML и CSS 6 28.03.2008 07:46
Определение IP IvanLex Общие вопросы по Java, Java SE, Kotlin 1 19.02.2008 09:12
TRichViewEdit - местоположение курсора? Алексей_C Общие вопросы Delphi 2 30.10.2007 20:55