Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вытащить выделенный фрагмент текста с других приложений [D6, Win95/98, WinME, NT4]


xpyctuk ©   (2002-02-14 13:06:00) 

Я конечно дико извиняюсь за неконкретный вопрос, но может быть кто-нибудь знает как можно достать выделенный текст из другого приложения (например из Word, Notebook) в приложение которое лежит в systemtray (Может быть есть какая-нибудь API функция которая возвращает выделенный текст из других приложений(вообще наверное надо посылать сообщение контролу другого приложения). Это нужно для приложения типа резидентного словаря, например юзер выделил в документе Word какое нибудь слово и кликнул на иконку в tray то резидентский словарь находит у себя в базе это слово и в виде хинта выводит его определение. Я уже почти сделал что бы словарь ловил с кейборды (с помощью hook и AlexRush).
Буду очень признателен если кто-нибудь подскажет вообще можно ли так сделать? Если нельзя то тоже скажите.


[NIKEL]   (2002-02-14 18:32:00) [1]

char tmp[65535],tmpc[65535],tmpt[65535];

//получаем хэндл первого дочернего окна для октивного окна и если оно Edit или Memo или ещё чё текстовое то получим выделенный в нём текст, а если нет то надо писать ещё код %]
HWND hwd = GetWindow(GetForegroundWindo(),GW_HWNDFIRST|GW_CHILD);

char buf[65535];
SendMessage(hwd,WM_GETTEXT,255,(LPARAM)&tmpc); // получаем выделенный текст
GetWindowText(GetForegroundWindow(),&tmpt,255); // получаем title активного окна
wsprintf(tmp,"%s %s|",tmpt,tmpc);// результат в tmp

в tmp должно быть title окна и выделенный текст дочернего ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо