![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вытащить выделенный фрагмент текста с других приложений [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 окна и выделенный текст дочернего ...