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

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

Lingvo аналог...


Vasily Terekhov ©   (2002-12-17 09:19:00) 

1.Хочу аналогично лингво по горячей клавише поместить выделенный текст активного приложения в буфер (лучше просто получить этот текст не использую буфер, если возможно)
2.У меня есть текст, который я хочу вставить вместо выделенного текста активного приложения по горячей клавише.

p.s. горячию клавишу через хук я отслежу без проблем. вопрос непосредственно в получении выделенного текста и вставки вместо него своего текста в стороннем предложении.


Vasily Terekhov   (2002-12-17 14:01:00) [1]

угу
работае
толко не удается таким монером получить текст у редакторов (например у дельфовского редактора)...


Song   (2002-12-17 12:43:00) [2]

Применяйте AttachThreadInput() чтобы сделать чужое приложение "как бы своим".


Vasily Terekhov   (2002-12-17 11:34:00) [3]

угу
я так и пробовал
но GetFocus работает только в пределах приложения, вызвалшего это функцию. а мне надо получать и устонавливать текст у активного приложения. не обязательно в данный момент будет активно мое приложение!!!


Slym   (2002-12-17 11:06:00) [4]

1. Ставишь приложению горячие клавиши
RegisterHotKey(Self.Handle,1,MOD_ALT,{Виртуальный код клавиши});
2. Пишешь обработчик на событие WM_HOTKEY
procedure WMHotkey(var msg:TMessage);message WM_HOTKEY;
в котором:
var s:PChar
...
hwnd:=GetFocus();
GetMem(s,256);
GetWindowText(hwnd,s,255);
//обработка строки S
SetWindowText(hwnd,s)
FreeMem(s,256);
3. На закрытии UnregisterHotKey(Self.Handle,1);


Наверх

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