Главная страница
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.024 c
14-92168
vuk
2003-08-05 22:13
2003.08.28
Вот незадача, во многих конференциях дураки созревают.


3-92065
amd
2003-08-01 07:11
2003.08.28
Как вставлять в таблицу картинки ?


3-91983
ivc_andr
2003-08-01 10:09
2003.08.28
закачать в Combobox Aliasы из BDE


3-92030
natali
2003-08-04 17:02
2003.08.28
QReport


4-92306
Pavel74
2003-06-28 17:33
2003.08.28
Kак открыть файлы в свое приложение как это делает winamp?