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

Вниз

Отловить нажатие клавиши   Найти похожие ветки 

 
Dmitriy   (2003-08-07 20:43) [0]

Возможно как-то определить была ли нажата какая-то кнопка на клавиатуре (не важно какая) без использования хуков?

Спасибо.


 
Юрий Зотов ©   (2003-08-07 21:20) [1]

В своей программе - запросто: Application.OnMessage.
Во всех программах - нужен хук. Причем глобальный.


 
Dmitriy   (2003-08-07 23:32) [2]

Я пробовал глобальный хук делать по примеру статьи на этом сайте "Hooks - аспекты реализации". Но он глючил. Запускаю, например TheBat!, нажимаю ALT+F2, почтовик выдаёт ошибку.


 
Palladin ©   (2003-08-08 07:44) [3]

Ну значит не судьба тебе клавиши ловить


 
PVOzerski ©   (2003-08-08 07:53) [4]

На одну-то клавишу GetAsyncKeyState поставить можно.


 
Song ©   (2003-08-08 09:00) [5]

На одну клавишу можно поставить RegisterHotKey()


 
dataMaster ©   (2003-08-08 09:15) [6]

Найди компонент xSpyOut


 
Dmitriy   (2003-08-10 19:34) [7]

Ок, попробую, спасибо.


 
Proger_XP ©   (2003-08-11 11:49) [8]

А если мне надо не одну клавишу а все?


 
Camus ©   (2003-08-11 12:44) [9]

> Proger_XP © (11.08.03 11:49) [8]

А если почитать ответы внимательно?
См. Юрий Зотов © (07.08.03 21:20) [1]


 
Calm ©   (2003-08-11 13:36) [10]


> Proger_XP © (11.08.03 11:49) [8]
> А если мне надо не одну клавишу а все?

Нажатие всех 105 клашиш :-\
Вот это hotkey всем hotkey"ем hotkey будет!


 
Vint45   (2003-08-11 14:21) [11]

И все-таки можно ли делать хуки без DLL? или чтобы отловить нажатие клавиши другим приложением нужно обязательно DLL писать?


 
dataMaster ©   (2003-08-11 14:52) [12]

2Vint45 (11.08.03 14:21)
Можно. Есть еще один компонент - KeySpy называется (или SpyKey, точно не помню). Вот там просто кидаешь его на форму и в твоем распоряжении всего два события - KeyDown и KeyUp. И никаких dll не нужно.


 
Reals ©   (2003-08-15 15:31) [13]

Я вот делаю всегда так, и без проблем:
if (GetAsyncKeyState(VK_CONTROL) <> 0) and
(GetAsyncKeyState(VK_SHIFT) <> 0) and
(GetAsyncKeyState(88) <> 0) then Synchronize(Form1.Close);


Это условие у меня стоит в потоке таймера и обрабатывает нажатие комбинации клавиш Ctrl+Shift+X на закрытие формы. Эта комбинация ловится с любой активной программы.



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
3-92004
digester
2003-08-05 20:59
2003.08.28
Проблема подтверждения кэшированных изменений в IBQuery


3-92078
MMF
2003-07-25 10:52
2003.08.28
Проблемы с документом (связка master-detail)


11-92085
Ал
2002-12-21 22:33
2003.08.28
Как выключить текстовый курсор KOLRichEdit в readonly?


7-92265
Aleksandr
2003-06-11 15:20
2003.08.28
Подскажите, как работать с телефонными звонками с компьютера?


1-92095
REP
2003-08-14 07:47
2003.08.28
Добавление узла (Child) в TTreeView в произвольном месте