Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: CL | DM;

Вниз

Lingvo аналог...   Найти похожие ветки 

 
Vasily Terekhov   (2002-12-17 09:19) [0]

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

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


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

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);


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

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


 
Song ©   (2002-12-17 12:43) [3]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-96725
iNew
2003-01-22 11:58
2003.01.30
Можно ли открыть существующий текстовый файл для записи, причем


1-96761
Brain
2003-01-21 16:15
2003.01.30
Полупрозрачность.


1-96670
AlexAlex2
2003-01-17 11:29
2003.01.30
Переход VCL->CLX


6-96904
serd_hhc
2002-11-26 00:16
2003.01.30
Почему не работает???


1-96691
diks
2003-01-20 20:41
2003.01.30
!