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

Вниз

Копирование в буфер выделенного текста   Найти похожие ветки 

 
leonidus   (2008-10-13 01:42) [0]

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

procedure CopySelectionFromActiveWindow;
var
 Wnd: THandle;
begin
 Wnd := GetFocusedControl;
 if Wnd <> 0 then
   begin
    ClearShiftState;
    keybd_event(VK_CONTROL, 0, 0, 0);
    keybd_event(Ord("C"), 0, 0, 0);
    keybd_event(Ord("C"), 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
 end;
end;

как видно это эмуляция нажатия Ctrl+C+C именно по этому видимо и не удается задействовать другую горячую клавишу т.к. она мешает эмуляции этой комбинации, а отправлять событие WMСopy конечно более элегантно но не со всеми окнами работает.

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

Как бороться с этой проблемой?


 
Германн ©   (2008-10-13 01:51) [1]

Очень смахивает на клавиатурного шпиона написанного троешником.
Примите и прочь!
P.S. Может я и не прав. Но...


 
Eraser ©   (2008-10-13 02:50) [2]

> [0] leonidus   (13.10.08 01:42)

1. см. WM_CLIPBOARDUPDATE.
2. см. RegisterHotKey.
3. хуки фтопку, тем более такие.


 
leonidus   (2008-10-13 10:11) [3]

Господа, давайте по все таки по теме, хук будет обязательно и именно такой такой какой он есть, ничего вредоносного программа из себя не представляет.


 
Anatoly Podgoretsky ©   (2008-10-13 13:40) [4]

Ты чего это в Общую пишешь?


 
Anatoly Podgoretsky ©   (2008-10-13 13:42) [5]

Писать ничео не надо, я тебе просто скажу эти волшебные горячие клавиши - Ctrl+C/Ctrl+V


 
leonidus   (2008-10-13 16:16) [6]

Anatoly Podgoretsky а вы с кем разговариваете?


 
leonidus   (2008-10-13 16:36) [7]

Давайте я перефразирую проблему. Как съэмулировать нажатие Ctrl+C или Ctrl+Ins при уже нажатой любой другой клавише на клавиатуре?


 
Anatoly Podgoretsky ©   (2008-10-13 17:07) [8]

> leonidus  (13.10.2008 16:36:07)  [7]

Не надо.


 
leonidus   (2008-10-13 22:30) [9]

Анатолий, вам больше нечего сказать?


 
Eraser ©   (2008-10-13 22:55) [10]

> [7] leonidus   (13.10.08 16:36)

отвечу вопросом на вопрос.
нафига?
поясни - может найдем решение получше.


 
Германн ©   (2008-10-14 01:08) [11]


> Eraser ©   (13.10.08 22:55) [10]

Он уже старался пояснить, но не любят нынче пояснять задачу, увы. Пытаются пояснить сам вопрос. Но не умеют их (вопросы) пояснять кроме как "на пальцах".


 
Наиль ©   (2008-10-14 01:47) [12]

Помоему в твоей программе не хватает KeyDown


 
Германн ©   (2008-10-14 01:54) [13]


> Наиль ©   (14.10.08 01:47) [12]
>
> Помоему в твоей программе не хватает KeyDown
>

В его программе много чего не хватает.Из [0] и [7] это видно.


 
blackman ©   (2008-10-16 20:02) [14]

Симулировать нажатие клавиш для копии и вставки из буфера
http://articles.org.ru/cfaq/index.php?qid=198&catid=50



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

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

Наверх




Память: 0.5 MB
Время: 0.014 c
15-1222266393
oldman
2008-09-24 18:26
2008.11.30
Это новый "вирус" такой - заставка экрана?


3-1210565102
YurikGL
2008-05-12 08:05
2008.11.30
TSimpleDataSet+mySQL+Decimal (15,4) - проблема типов.


15-1222267311
oldman
2008-09-24 18:41
2008.11.30
Я что-то упустил?


2-1224233625
Vlad Oshin
2008-10-17 12:53
2008.11.30
как Определить активное окно, но хитро - позже клика?


2-1224737122
Fynjy
2008-10-23 08:45
2008.11.30
Как напечатать изображение чтобы его размер и размер страницы